将图像位图添加到简单适配器 Android
Posted
技术标签:
【中文标题】将图像位图添加到简单适配器 Android【英文标题】:add Image Bitmap to Simple Adapter Android 【发布时间】:2018-01-10 11:00:12 【问题描述】:我在这里遇到了一些问题。假设我已经完美地将String
转换为Bitmap
,但是当我想使用SimpleAdapter
显示到ListView
时,它在ImageView
中什么都不显示。
这里,我的快照代码:
我已经定义了变量:
imageProduct = (ImageView)findViewById(R.id.imageId);
这是从 JSON 获取和转换图像:
JSONArray productDetails = new JSONArray(jsonStr2);
for(int j=0 ;j<productDetails.length();j++)
HashMap<String, Object> productData = new HashMap<String,Object>();
JSONObject q = productDetails.getJSONObject(j);
String productName = q.getString("Name");
String productPrice = q.getString("Price");
String productImage = q.getString("Image");
String encodeImage = productImage.replace("data:image/jpeg;base64,","").replace("data:image/png;base64,","");
byte[] decodedString = Base64.decode(encodeImage,Base64.DEFAULT);
Bitmap base64Bitmap = BitmapFactory.decodeByteArray(decodedString,0,decodedString.length);
productData.put("productName",productName);
productData.put("productPrice",productPrice);
productData.put("base64Bitmap",base64Bitmap);
orderDetailList.add(productData);
我想用这个适配器显示图像:
@Override
protected void onPostExecute(Object result)
super.onPostExecute(result);
if (pDialog.isShowing())
pDialog.dismiss();
SimpleAdapter adapter1 = new SimpleAdapter(
OrderDetailActivity.this, orderDetailList,
R.layout.list_item_product, new String[]"productName","productPrice","base64Bitmap",
new int[]R.id.productName,R.id.productPrice,R.id.imageId
);
lv.setAdapter(adapter1);
“名称”和“价格”显示完美,但图像没有。我该怎么办?
【问题讨论】:
【参考方案1】:问题已解决,据此:Displaying bitmap image in imageview by simple adapter
只需创建该类并将其用于您拥有的简单适配器。 干杯!
【讨论】:
【参考方案2】:只要按照这个代码就可以很容易...
adapter1.setViewBinder(new SimpleAdapter.ViewBinder()
@Override
public boolean setViewValue(View view, Object data,
String textRepresentation)
if( (view instanceof ImageView) & (data instanceof Bitmap) )
ImageView iv = (ImageView) view;
Bitmap bm = (Bitmap) data;
iv.setImageBitmap(bm);
return true;
return false;
);
lv.setAdapter(adapter1);
希望你喜欢。
【讨论】:
以上是关于将图像位图添加到简单适配器 Android的主要内容,如果未能解决你的问题,请参考以下文章
Android - 将搜索栏添加到自定义列表视图和简单适配器
在 ListView 的自定义适配器中从 URL 加载图像(Android Studio)
Android:将数据添加到 ArrayAdapter 时可见的 ListView 图像闪烁