我的應用程序使用相機拍攝照片。然後獲取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行是基於維諾的答案從Suggestions to avoid bitmap Out of Memory error - 縮放圖像的擺脫我以前收到的內存不足錯誤。 mPhoto
只是一個Bitmap
變量,timage
是圖像路徑(它正確地打印到控制檯上)。
任何人都能給我一個正確的方向提示,讓應用程序顯示每個圖像,而不是最後一個?
什麼是timage,它來自哪裏? – Merlevede
@Merlevede timage是一個字符串。我有一個名爲productlist的數組列表,並且timage用於獲取該列表的圖像路徑,它將與產品ID,名稱和描述一起輸入到列表中(所有這些都可以正確顯示每條記錄)I已發佈 – user3027078