2011-09-19 99 views
0

我想將圖像從一個特定的URL保存到sqlite數據庫,然後從數據庫中顯示它。可以告訴我,我可以如何 這樣做。使用Sqlite數據庫中的URL顯示圖像

在此先感謝。

問候, 拉哈夫拉賈戈帕蘭

+0

這裏是[教程](http://www.tutorialforandroid.com/2009/10/how-to-insert-image-data-to-sqlite.html) –

+0

非常感謝先生。我仍然懷疑。就像我有一個gridview和圖像。所以當我點擊圖像時,我需要在edittext框中顯示該圖像。同樣,當我提交我需要在edittext上方的列表視圖中顯示該圖像。在這個問題上的任何幫助。 – user950203

+0

可能的重複:[如何將URL從retiteived存儲在SQLite數據庫?](http://stackoverflow.com/questions/6815355/how-to-store-image-retreived-from-url-in-a-sqlite -數據庫/) –

回答

0

試試這個代碼。

URL url = new URL("your image url"); 
    URLConnection ucon = url.openConnection(); 
    InputStream is = ucon.getInputStream(); 
     BufferedInputStream bis = new BufferedInputStream(is,128); 
     ByteArrayBuffer barb= new ByteArrayBuffer(128); 
     //read the bytes one by one and append it into the ByteArrayBuffer barb 
     int current = 0; 
     while ((current = bis.read()) != -1) { 
       barb.append((byte) current); 
     } 

     ContentValues filedata= new ContentValues(); 
     //TABLE_FIELD = a field in the database table of type text 
     filedata.put(TABLE_FIELD,barb.toByteArray()); 
     //TABLE_NAME = a table in the database with a field TABLE_FIELD 
     db.insert(TABLE_NAME, null, filedata); 

      //Retriving Data from DB: 
    //select the data 
    Cursor cursor = db.query(TABLE_STATIONLIST, new String[] {TABLE_FIELD},null, null, null, null, null); 
    //get it as a ByteArray 
      //reading as Binary large object(BLOB) 
    byte[] imageByteArray=cursor.getBlob(1); 

    //the cursor is not needed anymore so release it 
    cursor.close(); 


Bitmap image=getbyteAsBitmap(imageByteArray); 



//use this method to convert byte[] to bitmap 


    private Bitmap getbyteAsBitmap(byte[] bytedata){ 
      if(bytedata!=null){ 
       ByteArrayInputStream imageStream = new ByteArrayInputStream(bytedata); 
       Bitmap theImage = BitmapFactory.decodeStream(imageStream); 
       //theImage=MediaProcesser.getRoundedCornerBitmap(theImage, 5); 
       return theImage; 
      }else{ 
       return null; 
      } 
     }