ImageView img1;
img1 = (ImageView) findViewById (R.id.img1);
URL newurl = new URL("http://10.0.2.2:80/Gallardo/Practice/files/images/donut.jpg");
Bitmap mIcon_val = BitmapFactory.decodeStream(newurl.openConnection() .getInputStream());
img1.setImageBitmap(mIcon_val);
我从网址获取图片,但我想将其存储到我的drawable中,怎么样?
答案 0 :(得分:1)
apk中的所有内容都是只读的。 所以你不能写入drawable。
你必须使用" blob"存储图像。
例如:将图像存储到db
public void insertImg(int id , Bitmap img ) {
byte[] data = getBitmapAsByteArray(img); // this is a function
insertStatement_logo.bindLong(1, id);
insertStatement_logo.bindBlob(2, data);
insertStatement_logo.executeInsert();
insertStatement_logo.clearBindings() ;
}
public static byte[] getBitmapAsByteArray(Bitmap bitmap) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.PNG, 0, outputStream);
return outputStream.toByteArray();
}
从db
中检索图像public Bitmap getImage(int i){
String qu = "select img from table where feedid=" + i ;
Cursor cur = db.rawQuery(qu, null);
if (cur.moveToFirst()){
byte[] imgByte = cur.getBlob(0);
cur.close();
return BitmapFactory.decodeByteArray(imgByte, 0, imgByte.length);
}
if (cur != null && !cur.isClosed()) {
cur.close();
}
return null ;
}
您还可以查看此saving image to database
答案 1 :(得分:1)
您可以使用此constructor构建Drawable:
Drawable drawable = new BitmapDrawable(getResources(), mIcon_val);
您可以将其设置为ImageView,如下所示:
img1.setImageDrawable(drawable);
答案 2 :(得分:0)
在运行apk时无法将图像放在可绘制文件夹中。可以将图像保存到SD卡中。