如何从数据库设置图像

时间:2010-08-09 14:55:13

标签: android

朋友的,        我在从数据库中获取图像时遇到问题,当我将图像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”,“创建表中的异常”);

}

我需要知道表中字节数组的格式,它只是看起来像alpha符号或其他东西,....来自我的表。

在代码下面我从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异常。它实际上是错的,并帮助我通过使用上面的代码来获取图像....

,当设备处于离线状态时,我正在执行上述过程

提前致谢。

1 个答案:

答案 0 :(得分:0)

你提到了

 "ImageView myImage = (ImageView) findViewById(R.id.jr_lb_list_icon);"

此代码...请检查ID“ jr_lb_list_icon ”是imageview还是其他... 我认为这个id不适用于图像视图...