Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何获取多个图像路径并转换为位图_Android_Image_Bitmap_Path - Fatal编程技术网

Android 如何获取多个图像路径并转换为位图

Android 如何获取多个图像路径并转换为位图,android,image,bitmap,path,Android,Image,Bitmap,Path,我的应用程序使用相机拍照。然后获取URI,然后是该照片的路径,并将该路径存储在SQLite数据库中。所有这些看起来都很好,但是当我将图像作为位图查看时,这段代码只为每个记录显示相同的图像(最后一个)(每个记录上的所有其他信息都正确显示) 这是我获取timage信息的地方,以及记录的其他详细信息: public ArrayList<ProductModel> _productlist = new ArrayList<ProductModel>(); ArrayList<

我的应用程序使用相机拍照。然后获取URI,然后是该照片的路径,并将该路径存储在SQLite数据库中。所有这些看起来都很好,但是当我将图像作为位图查看时,这段代码只为每个记录显示相同的图像(最后一个)(每个记录上的所有其他信息都正确显示)

这是我获取
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();
public ArrayList\u productlist=new ArrayList();
ArrayList product_list=db.getProducts();
对于(int i=0;i>>>>”+tidno);
timage=product_list.get(i).getImage();
系统输出打印LN(timage);
字符串tname=product_list.get(i).getProductname();
字符串tdesc=product_list.get(i).getproductdesc();
ProductModel_ProductModel=新ProductModel();
_ProductModel.setIdno(tidno);
_ProductModel.setImage(timage);
_ProductModel.setProductname(tname);
_ProductModel.setproductdesc(tdesc);
_productlist.add(_ProductModel);
}
setText(“总记录:-”+_productlist.size());
setAdapter(新的ListAdapter(this));
db.close();
前3行是基于Vino的答案,通过缩放图像来消除我收到的内存不足错误。
mPhoto
只是一个
Bitmap
变量,
timage
是图像路径(正确打印到控制台上)


有人能给我一个正确方向的提示,让应用程序显示每一张图像,而不仅仅是最后一张拍摄的图像吗?

该变量
timage
正在为
迭代保存
中最后一项的值

for (int i = 0; i < product_list.size(); i++)
{
    //...
    timage = product_list.get(i).getImage();
    //...
}

它被用于你所有的图像。您不应该改用
\u ProductModel.getImage()
吗?

什么是timage,它来自哪里?@Merlevede timage是一个字符串。我有一个名为productlist的数组列表,timage用于获取该列表的图像路径,它与产品id、名称和描述一起输入到列表中(每个记录都正确显示)。我已在上面发布了代码片段谢谢。我认为您的答案在错误方面是正确的,但不幸的是,ProductModel.getImage()似乎产生了同样的问题。
for (int i = 0; i < product_list.size(); i++)
{
    //...
    timage = product_list.get(i).getImage();
    //...
}
mPhoto = BitmapFactory.decodeFile(timage.toString(), options);