在列表中加载静态图像会减慢滚动速度

时间:2015-03-10 11:35:57

标签: java android performance android-listview image-loading

我的静态列表由图像和数据组成。我正在异步加载背景图像。图像的加载会降低滚动性能。如果我注释掉图像加载代码列表滚动速度非常快。如何在加载时改进滚动性能列表中的图像?下面是我用于加载图像的代码 -

     public View getView(final int i, View v, ViewGroup viewGroup) {
  thumbnailImageView = (ImageView) view.findViewById(R.id.video_thumbnail);
        final String id = video.getId();
        String thumbnailPath = FileUtils.getCachedFileName(0,video.getId());

        BitmapWorkerTask task = new BitmapWorkerTask(thumbnailImageView);

            task2.execute(thumbnailPath);
    .
    .

    }



     class BitmapWorkerTask extends AsyncTask<String, Void, Bitmap>
        {

          private final ImageView imageViewReference;

            public BitmapWorkerTask(ImageView imageView)
            {
              imageViewReference = imageView;
            }





            @Override
            protected Bitmap doInBackground(String... urls) {

                return BitmapFactory.decodeFile(urls[0]);


            }


            @Override
            protected void onPostExecute(Bitmap bitmap)
            {
                imageViewReference.setImageBitmap(bitmap);

            }
        }

3 个答案:

答案 0 :(得分:2)

您可以使用Universal Image Library在后台加载图片。它具有停止在Scroll或Fling上加载图像的功能。

答案 1 :(得分:1)

尝试Picasso,因为它也支持本地文件:

Picasso.with(context).load(R.drawable.landing_screen).into(imageView1);
Picasso.with(context).load("file:///android_asset/DvpvklR.png").into(imageView2);
Picasso.with(context).load(new File(...)).into(imageView3);

答案 2 :(得分:0)

检查下面的代码..这可能对你有所帮助......你没有提供完整的代码。所以我假设你正在从BaseAdapter扩展你的适配器而你的列表项有一个{{1 }}

ImageView