当我点击ImageButton
时,我将拥有bitmap
画廊,以供选择图像并将ImageButton
发送回去显示。
但是我必须获取显示在此ImageButton上的bitmap
,然后将其另存为byte[]
答案 0 :(得分:1)
从图库中加载图像时,您已经具有对其的URI引用,或者您具有位图。希望以下帮助
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri);
现在,如果要从imageButton获取位图,则可以使用
Bitmap bitmap = ((BitmapDrawable)imageButton.getDrawable()).getBitmap();
也请参阅How to get Bitmap from an Uri?,以了解更多信息
答案 1 :(得分:0)
尝试
Bitmap bitmap = ((BitmapDrawable)imageButton.getDrawable()).getBitmap();
答案 2 :(得分:0)
首先从{as: "AS45194 Syscon Infoway Pvt. Ltd.", city: "Thane", country: "India", countryCode: "IN", isp: "Syscon Infoway Pvt.", …}
获得bitmap
ImgaeButton
然后将此Bitmap bitmap = ((BitmapDrawable)imageButton.getDrawable()).getBitmap();
转换为bitmap
byteArray
答案 3 :(得分:0)
您可以使用Blob将图像存储在sqlite android内部数据库中。
***以下答案是从How to store image in SQLite database完全复制的-功劳归答案提供商
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();
}
从数据库检索图像
公共位图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 ;
}