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