朋友的, 我在从数据库中获取图像时遇到问题,当我将图像url存储在数据库中时,在sqlite中有Blob数据类型, 插入的代码是
DefaultHttpClient mHttpClient = new DefaultHttpClient();
HttpGet mHttpGet = new HttpGet("http://www.dashfire.com/jackrobie/media/catalog/product/cache/1/image/97x144/9df78eab33525d08d6e5fb8d27136e95/a/l/alexander_1_1_1.jpg");
HttpResponse mHttpResponse = mHttpClient.execute(mHttpGet);
if (mHttpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
HttpEntity entity = mHttpResponse.getEntity();
if ( entity != null) {
// insert to database
ContentValues values = new ContentValues();
values.put(JR_Constants.NAME, name1);
values.put(JR_Constants.PRICE, price);
values.put(JR_Constants.IMAGE_97, EntityUtils.toByteArray(entity));
表中的值似乎在上面之后, _id |名字| image_97 |价钱 1 mss& - (它像一个alpha符号)$ 115.00 2 sss& - “$ 120.00
这里创建表格的代码...
public void onCreate(SQLiteDatabase db){
尝试{
db.execSQL(“CREATE TABLE”+ TABLE_NAME +“(”
+ _ID +“INTEGER PRIMARY KEY AUTOINCREMENT”,
+ NAME +“TEXT”,
+ IMAGE_97 +“BLOB”
+ PRICE +“TEXT);”);
Log.v(“JR_Data”,“table created”);
} catch(例外e){
Log.v(“JR_Data”,“创建表中的异常”);
在代码下面我从db获取图像后面跟着
ImageView myImage = (ImageView) findViewById(R.id.jr_lb_list_icon);
第1行.byte [] bb = c.getBlob(c.getColumnIndex(JR_Constants.IMAGE_97)); 尝试{ myImage.setImageBitmap(BitmapFactory.decodeByteArray(bb,0,bb.length)); } catch(例外e) { Log.v(TAG,“Error1”+ e); }
从第1行开始,提到它包含JR_Constants.IMAGE_97的字符串常量。
当从表中获取并设置图像时,它会抛出一个nullpointer异常。它实际上是错的,并帮助我通过使用上面的代码来获取图像....
,当设备处于离线状态时,我正在执行上述过程
提前致谢。
答案 0 :(得分:0)
"ImageView myImage = (ImageView) findViewById(R.id.jr_lb_list_icon);"
此代码...请检查ID“ jr_lb_list_icon ”是imageview还是其他... 我认为这个id不适用于图像视图...