像在 WhatsApp 中一样加载多个图像进度条

     2023-05-07     135

关键词:

【中文标题】像在 WhatsApp 中一样加载多个图像进度条【英文标题】:Multiple Images Progress Bar loading Like in Whats App 【发布时间】:2015-08-17 11:52:27 【问题描述】:

我想在上传或下载图像或视频时在 Whats App 中显示多个进度条。以及完成的进度条隐藏进度条。

我尝试使用异步任务执行此操作,但没有获得确切的解决方案,并且代表也习惯这样做。没有得到确切的解决方案。

这是我的代码

主要活动

public class MainActivity extends ActionBarActivity 

    private ListView mListView;
    private ArrayList<String> alst;
    private int count = 0;
    private MyAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mListView = (ListView) findViewById(R.id.listView1);
        alst = new ArrayList<String>();

        adapter = new MyAdapter(this, R.layout.activity_main, alst);

        mListView.setAdapter(adapter);
    

    public void onClick(View v) 
        count++;
        alst.add("" + count);
        adapter.notifyDataSetChanged();
    

这是我的适配器

public class MyAdapter extends ArrayAdapter<String> 

    private Context mContext;
    public ViewHolder viewHolder;

    public MyAdapter(Context context, int resource, List<String> objects) 
        super(context, resource, objects);
        mContext = context;
    

    private class ViewHolder 
        ProgressBar progressBar;
    

    @Override
    public View getView(int position, View convertView, ViewGroup parent) 
        viewHolder = null;
        if (convertView == null) 

            LayoutInflater inflater = (LayoutInflater) mContext
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

            convertView = inflater.inflate(R.layout.adapter, parent, false);

            viewHolder = new ViewHolder();
            viewHolder.progressBar = (ProgressBar) convertView
                    .findViewById(R.id.progressBar1);

            viewHolder.progressBar.getIndeterminateDrawable().setColorFilter(
                    mContext.getResources().getColor(R.color.actionBar),
                    android.graphics.PorterDuff.Mode.MULTIPLY);

            viewHolder.progressBar.setVisibility(View.VISIBLE);

            convertView.setTag(viewHolder);
        

        viewHolder = (ViewHolder) convertView.getTag();

        TextView textView = (TextView) convertView.findViewById(R.id.textView1);

        textView.setText(getItem(position));
        new DownloadAsyncTask().execute(viewHolder);
        return convertView;
    

    public class DownloadAsyncTask extends
            AsyncTask<ViewHolder, Void, ViewHolder> 

        @Override
        protected ViewHolder doInBackground(ViewHolder... params) 
            ViewHolder viewHolder = params[0];

            for (int i = 0; i < 2500; i++) 
                System.out.println(i);
            
            return viewHolder;
        

        @Override
        protected void onPostExecute(ViewHolder result) 
            result.progressBar.setVisibility(View.GONE);
        
    

这是进展

让我知道有价值的解决方案,或者是否有任何图书馆对其有益

【问题讨论】:

这是有效的,但这会为每个视图多次调用异步任务。例如,如果列表有 4 个元素,它将为第 4 个元素调用 4 次。 【参考方案1】:

我不太确定您所说的“精确解决方案”是什么意思,但查看您的代码我发现您正在尝试从 AsyncTask 设置进度。但是,您只能从 UI 线程更新视图,而不能直接从 AsyncTask 中更新,这是一个单独的线程。

但是,Asynctask 提供了一种方法 publishProcess(),您可以使用该方法在 UI 线程上执行此类操作(例如调用更新进度条的函数),而您的 doInBackground 正在单独的线程中工作。检查this example.

您可能需要一个接口来从 AsyncTask 调用主线程中的函数。希望这会有所帮助!

【讨论】:

使用 ASYNCTASK 更新视图会产生这个问题。尝试在主 UI 线程中更新它们。

像whatsapp一样加载联系人

】像whatsapp一样加载联系人【英文标题】:loadingcontactsjustlikewhatsapp【发布时间】:2014-01-1700:28:32【问题描述】:我正在努力获取活动中的联系人列表。我想检索联系人的联系人照片,如果他们有个人资料选择,就像在whatsapp中一... 查看详情

android中的圆形进度条

...】:我想实现一些圆形进度条,中间有一个按钮,就像在whatsapp中一样。有谁知道一个好的图书馆来实现这一点?我想要完成的是这个。【问题讨论】:请求站外资源被认为是StackOverflow的题外话。Android兵工厂有many,manyprogressindica... 查看详情

快速在 UICollectionView 中显示多个图像上传的进度条

】快速在UICollectionView中显示多个图像上传的进度条【英文标题】:ShowingprogressbaronmultipleimageuploadinUICollectionViewinswift【发布时间】:2016-03-1712:12:34【问题描述】:我有一个使用UICollectionView设计的聊天视图。我已经成功实现了图像... 查看详情

如何像在 whatsapp 中一样在 CollapsingToolbarLayout 中实现字幕

】如何像在whatsapp中一样在CollapsingToolbarLayout中实现字幕【英文标题】:HowtoimplementasubtitleinCollapsingToolbarLayoutlikeinthewhatsapp【发布时间】:2015-12-2007:14:15【问题描述】:我想实现的如图所示,详情页副标题显示为“+91创建”目前我... 查看详情

TextField 没有被键盘顺利推上,就像在 Whatsapp 和环聊中一样

】TextField没有被键盘顺利推上,就像在Whatsapp和环聊中一样【英文标题】:TextFieldisnotpushedupsmoothlybykeyboard,likeinWhatsappandHangouts【发布时间】:2014-04-3009:02:52【问题描述】:我正在尝试模仿Whatsapp应用中的UITextField-keyboard关系。众所... 查看详情

用于 onActivityCreated 中通用图像加载器的片段中进度条的 NullPointerException

】用于onActivityCreated中通用图像加载器的片段中进度条的NullPointerException【英文标题】:NullPointerExceptionforprogressbarinfragmentforUniversalImageLoaderinonActivityCreated【发布时间】:2014-08-1300:08:40【问题描述】:我遇到了无法诊断的奇怪NPE。... 查看详情

想要获得像在 iphone 中打开相机快门一样的动画

】想要获得像在iphone中打开相机快门一样的动画【英文标题】:Wanttogetanimationlikeopeningacamerashutteriniphone【发布时间】:2013-03-3007:48:58【问题描述】:我正在根据要求制作基于摄影的应用程序,我必须在菜单中显示所有进度或活动... 查看详情

如何只实现一个圆形进度条,直到图像被滑动加载

】如何只实现一个圆形进度条,直到图像被滑动加载【英文标题】:Howtoimplementonlyonecircularprogressbaruntilimagesareloadedwithglide【发布时间】:2021-08-2406:49:15【问题描述】:您好,我只想实现一个圆形进度动画,直到从滑行加载图像,... 查看详情

使用 Glide 库设置完成图像加载后进度条的可见性

】使用Glide库设置完成图像加载后进度条的可见性【英文标题】:SetvisibilityofprogressbargoneoncompletionofimageloadingusingGlidelibrary【发布时间】:2014-11-2103:52:30【问题描述】:您好,我想要一个图像进度条,它会在图像加载时显示,但是... 查看详情

使用 Glide 加载图像时的进度条

】使用Glide加载图像时的进度条【英文标题】:ProgressbarwhileloadingimageusingGlide【发布时间】:2016-05-2006:06:10【问题描述】:在使用Glide加载图像之前,我可以在占位符中加载带有旋转动画的微调器吗?我正在尝试使用.placeholder(R.Dra... 查看详情

在科尔多瓦本地通知中显示进度条

...时实现本地通知。我找不到如何在通知中显示进度条,就像在原生通知中一样http://javat 查看详情

如何在加载时加载自定义进度条

】如何在加载时加载自定义进度条【英文标题】:Howtoloadacustomprogressbaratloadingtime【发布时间】:2014-10-2908:09:53【问题描述】:我有一个要求,我需要在初始屏幕上显示进度条/活动指示器,直到我在iOS7中完成数据下载。提前致谢... 查看详情

像在 viewpager 中一样在可翻转堆栈视图中排列图像视图

】像在viewpager中一样在可翻转堆栈视图中排列图像视图【英文标题】:Arrangeimageviewsinflippablestackviewasinviewpager【发布时间】:2015-11-1709:53:45【问题描述】:FlippableStackView库中类似片段的图像。我想要右侧的堆栈。【问题讨论】:... 查看详情

如何在加载图像时添加进度条或循环进度此代码(颤振)?我尝试了不同的解决方案,但没有运气:(

】如何在加载图像时添加进度条或循环进度此代码(颤振)?我尝试了不同的解决方案,但没有运气:(【英文标题】:HowcanIaddaprogressbarorCircularProgressthiscode(Flutter)whileanimageisloading?Ihavetrieddifferentsolutionsbutnoluck:(【发布时间】:2021-0... 查看详情

显示进度条,直到 UITableView 加载所有 Cell

】显示进度条,直到UITableView加载所有Cell【英文标题】:ShowprogressBaruntilUITableViewloadallCell【发布时间】:2021-11-0605:05:32【问题描述】:我正在使用Swift5构建一个应用程序。我用UITableView创建了一个视图。我需要显示进度条,直到... 查看详情

Android : 像 Facebook 一样有多个图像和视频的新闻源

...-1601:58:18【问题描述】:在我的android应用程序中,我需要像在facebook中一样创建需求提要。在Facebook中,如果单个帖子或新闻提要中有多个视频或图像,那么最初都不会显示,而不是在5个或更多项目后出 查看详情

vb在n个表单和自动进度条上净加载多个数据网格

】vb在n个表单和自动进度条上净加载多个数据网格【英文标题】:vbnetloadmultipledatagridatnoneformandautomaticprogressbar【发布时间】:2014-01-3114:53:17【问题描述】:我在一种形式中有2个数据网格和2个按钮..如果我点击GO!,左边的数据网... 查看详情

响应式图像大小,图像(像素)大小和文件(字节)大小,就像在 Google plus 中一样

...式图像大小,图像(像素)大小和文件(字节)大小,就像在Googleplus中一样【英文标题】:Responsiveimagesizebothimage(pixel)sizeandfile(byte)sizejustlikeinGoogleplus【发布时间】:2015-10-0404:15:12【问题描述】:下面的链接是我从googleplus获得的... 查看详情