我有一个应用程序,我可以添加许多产品,每个产品都有一个图像。我将所有图像存储到存储中的固定路径。我的问题是,当我将所有产品加载到列表视图中时,需要花费太多时间来解码路径中的所有图像。我正在使用自定义适配器。
我的适配器
public class MyAdapter extends BaseAdapter {
@Override
public int getCount() {
return planList.size();
}
@Override
public Object getItem(int position) {
return planList.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ProductsModel db_data = planList.get(position);
if (convertView == null) {
convertView = View.inflate(getApplicationContext(), R.layout.product_list, null);
}
ImageView btn1 = (ImageView) convertView.findViewById(R.id.imageView);
TextView name = (TextView) convertView.findViewById(R.id.name);
TextView stock = (TextView) convertView.findViewById(R.id.stock);
TextView amount = (TextView) convertView.findViewById(R.id.amount);
name.setText(db_data.getName());
stock.setText(db_data.getStock());
amount.setText(db_data.getSprice());
try{
Bitmap bm = BitmapFactory.decodeFile(db_data.getImage());
if (bm != null) {
btn1.setImageBitmap(bm);
} else {
btn1.setImageResource(R.drawable.photo);
}
}catch (Exception e) {
btn1.setImageResource(R.drawable.photo);
}
return convertView;
}
}
当我单击按钮显示列表视图中的所有项目时,启动列表视图活动需要太多时间。 我发现“BitmapFactory.decodeFile(db_data.getImage());”更耗时。 如何更有效地从图像路径中填充ListView项目中的ImageView。