我想将特定网址中的图片保存到sqlite db和 然后从数据库中显示它。任何人都可以告诉我如何 那样做。
提前致谢。
此致 Raghav Rajagopalan
答案 0 :(得分: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;
}
}