Android 如何使用截图在列表视图中显示图像?
当我们从数据库中获取图像并希望在带有标题和描述的listView中显示它们时,会出现问题 //我们首先从数据库抛出Json对象获取图像Android 如何使用截图在列表视图中显示图像?,android,Android,当我们从数据库中获取图像并希望在带有标题和描述的listView中显示它们时,会出现问题 //我们首先从数据库抛出Json对象获取图像 map= new HashMap<String, Object>(); String encoded = unProduit.getString("image"); byte[] decodedString = Base64.decode(encoded, Base64.DEFAULT); Bitmap decodedByte =
map= new HashMap<String, Object>();
String encoded = unProduit.getString("image");
byte[] decodedString = Base64.decode(encoded, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0,
decodedString.length);
Drawable d = new BitmapDrawable(getResources(),decodedByte);
map.put("img", d);
// to display in listeview
SimpleAdapter monAdapter = new SimpleAdapter (Activity_Recherche_produit.this, tabProduits, R.layout.layout_produit_listview,
new String[] {"img", "mnom", "mville","mdate" },
new int[] {R.id.img, R.id.idnomprod, R.id.idville,R.id.iddate});
But when we set image to imageView , it works
map=newhashmap();
字符串编码=unpuuit.getString(“图像”);
字节[]decodedString=Base64.decode(编码,Base64.DEFAULT);
位图decodedByte=BitmapFactory.decodeByteArray(decodedString,0,
解码字符串(长度);
Drawable d=新的位图Drawable(getResources(),decodedByte);
地图放置(“img”,d);
//在列表视图中显示
SimpleAdapter monAdapter=新的SimpleAdapter(活动\u Recherche\u produit.this,选项卡produits,R.layout.layout\u produit\u列表视图,
新字符串[]{“img”、“mnom”、“mville”、“mdate”},
新int[]{R.id.img,R.id.idnomprod,R.id.idville,R.id.iddate});
但当我们将image设置为imageView时,它就起作用了
多亏了截击,你才能检索到你的图像,为什么不检索标题和描述
您需要一个布局(我们称之为layoutImage)来表示列表中的项目,因此您的布局应该有一个图像视图来表示图像,一个文本视图来表示标题,一个文本视图来表示说明
我的建议是创建一个适配器
ImageListAdapter imageListAdapter = new ImageListAdapter(layoutImage, ...)
使用ArrayAdapter的子类ImageListAdapter,您在其中描述了UI
public class ImageListAdapter<T> extends ArrayAdapter<T> {
@Override
public View getCustomView(int position, View convertView, ViewGroup parent) { ...
Bitmap mBitmap = BitmapFactory.decodeFile(fileimage);
imageView.setImageBitmap(mBitmap);
... }
}
当然,ListView是必需的:
ListView listView = findViewById(R.id.listviewimages);
listView.setAdapter(adapter);
您甚至可以指定选择图像时发生的情况
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
...
}
});
listView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
...
}
});
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
...
}
});