因此,我有一个名为 apps 的表,它有 4 列和一个名为 App_icon 的列,在其中我将 drawable 转换为 byte[] 并将其作为 blob 存储在“App_icon”列中。我有一个列表视图,它从表中提取字段,如图所示。我还需要通过将 blob 转换回图像来在左角显示图像。我用来从数据库中检索文本数据并显示的代码是:
mySQLiteAdapter.open();
String[] arrayColumns = new String[] { Dbhelper.KEY_PKG,
Dbhelper.KEY_APP, };
int[] arrayViewIDs = new int[] { R.id.appname, R.id.pkgname };
cursor = mySQLiteAdapter.getAllFolders();
adapter = new SimpleCursorAdapter(
getActivity().getApplicationContext(), R.layout.listview_items,
cursor, arrayColumns, arrayViewIDs);
lv.setAdapter(adapter);
mySQLiteAdapter.close();
其中 KEY_PKG 和 KEY_APP 是显示在 textview 中的其他表名(appname 和 pkgname)。有人可以提供有关如何将图像绑定到相应字段的示例代码吗?问候,维杰
编辑:如果有人可以发布如何从所有行中仅获取“App_icon”列的值并将其存储在数组中?那会很有帮助
编辑2:以下是用于获取图像的方法
adapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
@Override
public boolean setViewValue (View view, Cursor cursor, int columnIndex){
if (view.getId() == R.id.app_icon) {
ImageView IV=(ImageView) view;
Bitmap icon;
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
byte[] image = null;
Cursor images = mySQLiteAdapter.geticon();
int rows = images.getCount();
for(int i=1;i<=rows;i++){
image = mySQLiteAdapter.getIcon(i);
icon = BitmapFactory.decodeByteArray(image , 0, image .length, options);
Toast.makeText(getActivity(), "executes"+rows, Toast.LENGTH_SHORT).show();
IV.setImageBitmap(icon);
}
//IV.setBackgroundColor(Color.TRANSPARENT);
return true;
}
return false;
}
});