【发布时间】:2014-04-06 05:28:04
【问题描述】:
我的应用使用相机拍照。然后它获取 URI,然后是该照片的路径,并将路径存储在 SQLite 数据库中。所有这些似乎都可以正常工作,但是当我以位图的形式查看图像时,此代码只为每条记录显示相同的图像(最后一张)(每条记录上的所有其他信息都正确显示)。
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 8;
mPhoto = BitmapFactory.decodeFile(timage.toString(), options);
viewHolder.img_image = (ImageView) convertView.findViewById(R.id.image);
viewHolder.img_image.setImageBitmap(mPhoto);
这是我获取timage 的信息以及其他记录详细信息的地方:
public ArrayList<ProductModel> _productlist = new ArrayList<ProductModel>();
ArrayList<ProductModel> product_list = db.getProducts();
for (int i = 0; i < product_list.size(); i++) {
String tidno = product_list.get(i).getIdno();
System.out.println("tidno>>>>>" + tidno);
timage = product_list.get(i).getImage();
System.out.println(timage);
String tname = product_list.get(i).getProductname();
String tdesc = product_list.get(i).getproductdesc();
ProductModel _ProductModel = new ProductModel();
_ProductModel.setIdno(tidno);
_ProductModel.setImage(timage);
_ProductModel.setProductname(tname);
_ProductModel.setproductdesc(tdesc);
_productlist.add(_ProductModel);
}
totalrecords.setText("Total Records :-" + _productlist.size());
listview.setAdapter(new ListAdapter(this));
db.close();
前 3 行基于 Vino 对 Suggestions to avoid bitmap Out of Memory error 的回答 - 缩放图像以消除我收到的内存不足错误。
mPhoto 只是一个 Bitmap 变量,timage 是图像路径(正确打印到控制台)。
谁能给我一个正确方向的提示,让应用程序显示每张图片,而不仅仅是最后一张?
【问题讨论】:
-
什么是 timage,它从何而来?
-
@Merlevede timage 是一个字符串。我有一个名为 productlist 的数组列表,timage 用于获取该列表的图像路径,它与产品 ID、名称和描述一起输入到列表中(所有这些都为每条记录正确显示)我'已经发布了上面的代码sn-p