2014-01-29 71 views
0

我遵循这个POST提供的答案,它基本上向我展示了如何使用相机捕获数据库中的图像引用。检索参考和显示图像

如何根据该参考显示图像?我使用的是GridView和自定义适配器来显示这些图像

回答

0

试试这个

ImageView img = (ImageView)findViewById(R.id.image); 
Bitmap bitmap = BitmapFactory.decodeFile(img_path); 
img .setImageBitmap(bitmap); 

其中img_path是存储在数据库中的路径

+0

感谢您的回复。我可以看到这个工作。但我有一个问题,我有多个存储在数据库中的参考路径,我想遍历它们并将它们全部显示在gridview中。你知道我该怎么做吗? – ImNewHere

+0

从数据库获取所有图像路径并存储在'ArrayList '中并根据您的需要在gridview中使用它们 – Kunu

+0

感谢Kunu。我会试试看看它是否能解决我的问题。 – ImNewHere

0

此链接可以帮助你,检查readFromDB()方法

STORE AND READ IMAGES

从链接所采取的方法(我建议你阅读整个后)

void readFromDB() { 
     byte[] byteImage2 = null; 
     SQLiteDatabase myDb; 
     myDb = openOrCreateDatabase(DB_NAME, Context.MODE_PRIVATE, null); 
     Cursor cur = myDb.query(TABLE_NAME, null, null, null, null, null, null); 
     cur.moveToFirst(); 
     while (cur.isAfterLast() == false) { 
      textView.append("\n Reading Details \n Name : " + cur.getString(1)); 
      cur.moveToNext(); 
     } 

     // /////Read data from blob field//////////////////// 
     cur.moveToFirst(); 
     byteImage2 = cur.getBlob(cur.getColumnIndex("image")); 
     setImage(byteImage2); 
     cur.close(); 
     myDb.close(); 
     Toast.makeText(this.getBaseContext(), 
       "Image read from DB successfully.", Toast.LENGTH_SHORT).show(); 
     Toast.makeText(this.getBaseContext(), 
       "If your image is big, please scrolldown to see the result.", 
       Toast.LENGTH_SHORT).show(); 
    } 

    void setImage(byte[] byteImage2) { 
     image2.setImageBitmap(BitmapFactory.decodeByteArray(byteImage2, 0, 
       byteImage2.length)); 
     textView.append("\n Image Size : " + byteImage2.length + " KB"); 
    } 
+0

感谢您的回复。但是,该链接显示如何通过将图像作为BLOB进行存储和检索来实现该解决方案。我没有将实际图像存储在数据库中,只是对其的引用(例如图像名称或路径)。 – ImNewHere

+0

哦,对不起。有道路waaay更容易。 Kunu回答的很好。祝你好运 – klifa