我一直在寻找解决方案几个小时,希望有人能帮忙吗?
我有一个滑动标签页面ui,每个页面都有一个加载图像的网格视图,按预期工作,但速度非常慢,即使在高端设备上也是如此。我可以使用异步任务设置图像资源吗?我的gridview的适配器如下:
public class PcAdapter extends BaseAdapter {
private Context context;
private Integer[] imageIds = {
R.drawable.pcserioussam, R.drawable.pc_trinetwo,
R.drawable.pc_leftfordead, R.drawable.pc_dungeondefenders,
R.drawable.pc_portaltwo, R.drawable.pc_spaz,
R.drawable.pc_laracroftattoo, R.drawable.pc_goatsim,
R.drawable.pc_deadblock
};
public PcAdapter(Context c) {
context = c;
}
public int getCount() {
return imageIds.length;
}
public Object getItem(int position) {
return imageIds[position];
}
public long getItemId(int position) {
return 0;
}
public View getView(int position, View view, ViewGroup parent) {
ImageView iview;
if (view == null) {
iview = new ImageView(context);
iview.setLayoutParams(new GridView.LayoutParams(230,300));
// iview.setScaleType(ImageView.ScaleType.FIT_CENTER);
iview.setPadding(5, 5, 5, 5);
} else {
iview = (ImageView) view;
}
iview.setImageResource(imageIds[position]);
return iview;
}
}
答案 0 :(得分:2)
由于以下几点,你的问题出现了:
答案 1 :(得分:2)
@mmlooloo的答案是完全相关的,我完全赞同他。
作为补充,为了给出一个解决方案,我建议你使用库Picasso
,它真的很容易使用,非常强大。
在Adapter
中,您可以将图片加载到ImageView
中,如下所示:
// Trigger the download of the URL asynchronously into the image view.
Picasso.with(context)
.load(url) // url of your image
.placeholder(R.drawable.placeholder) // drawable to display while downloading the image
.error(R.drawable.error) // drawable in case of failure
.into(imageView); // ImageView where you want to load the picture.
Picasso将为您处理缓存和内存问题。 要了解有关毕加索的更多信息并开始使用它,take a look here。