내 앱은 카메라를 사용하여 사진을 찍습니다. 그런 다음 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
은 이미지 경로 (콘솔에 올바르게 인쇄 됨)입니다.
마지막으로 찍은 것이 아닌 모든 이미지를 보여주는 앱을 얻으려면 올바른 방향으로 나에게 힌트를 줄 수있는 사람이 있습니까?
시간표 란 무엇이며 어디서 오는 것입니까? – Merlevede
@Merlevede timage는 문자열입니다. productlist라고하는 배열 목록이 있고 timage는 해당 목록의 이미지 경로를 가져 오는 데 사용되며 제품 ID, 이름 및 설명 (모두 각 레코드에 대해 올바르게 표시됨)과 함께 목록에 입력됩니다. 위에 코드 스 니펫을 게시했습니다. – user3027078