0

I want to save images from a particular URL into the sqlite db and then display it from the database..Can anyone tell me as how i could do that.

Thanks in advance.

Regards, Raghav Rajagopalan

  • Here is [Tutorial](http://www.tutorialforandroid.com/2009/10/how-to-insert-image-data-to-sqlite.html) – Adil Soomro Sep 19 '11 at 10:26
  • Thanks a lot sir. I still va doubt. Like i ve a gridview with images in it. So when i click on the image i need to display that image in edittext box. Similarly when i give submit i need to display that image in listview above the edittext. Any help in this issue. – user950203 Sep 19 '11 at 10:40
  • Possible duplicate: [How to store image retreived from url in a SQLite database?](http://stackoverflow.com/questions/6815355/how-to-store-image-retreived-from-url-in-a-sqlite-database/) – Mohammed Azharuddin Shaikh Sep 19 '11 at 10:29

1 Answers1

0

try this code.

   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;
            }
        }
ilango j
  • 5,967
  • 2
  • 28
  • 25