【问题标题】:How to take multiple image paths and convert to a bitmap如何获取多个图像路径并转换为位图
【发布时间】: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

标签: android image bitmap path


【解决方案1】:

变量timage 保存for 迭代中最后一项的值。

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

所以退出循环后timage 将具有最后一项的值。当然在这里

mPhoto = BitmapFactory.decodeFile(timage.toString(), options);

它正在用于您的所有图像。你不应该改用_ProductModel.getImage() 吗?

【讨论】:

  • 谢谢。我认为你的答案是正确的,但不幸的是 _ProductModel.getImage() 似乎产生了同样的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-28
  • 2020-09-02
  • 2017-03-30
  • 2018-01-31
  • 1970-01-01
  • 2018-05-27
  • 2018-11-01
相关资源
最近更新 更多