我有一个特殊情况,我非常接近完成!基本上,我在数据库中有一些需要在BitmapFactory中使用然后绘制的decodeBase64字符串。
public static Bitmap decodeBase64(String input)
{
byte[] decodedByte = Base64.decode(input, 0);
return BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length);
}
这是我的MainActivity.java:
// Initiate Database
DatabaseHandler db = new DatabaseHandler(this); // "this" refer to the context
// Grab current Car for use.
Car cars = db.getCurrentCar();
// Grab String from database and decode to Base64
//ByteConvert.decodeBase64(cars.get_image());
// Create Bitmap object from database source
BitmapFactory(ByteConvert.decodeBase64(cars.get_image());
// Draw image from string
Drawable draw = new BitmapDrawable(getResources(), BITMAPFACTORY GOES HERE);
// Set R.id.DRAWABLE to imageView
我的问题是,如何将此字符串从decodeBase64返回到BitmapFactory然后绘制它?
我已尽力尝试填写我认为有效的方法。
由于
答案 0 :(得分:4)
Base64.decode方法返回一个字节数组,因此您可以使用BitmapFactory的decodeByteArray方法构建您的位图,并在ImageView上设置它。
例如:
DatabaseHandler db = new DatabaseHandler(this);
Car cars = db.getCurrentCar();
byte[] imageData = Base64.decode(cars.get_image(), 0);
Bitmap bitmap = BitmapFactory.decodeByteArray(imageData, 0, imageData.length, new BitmapFactory.Options());
ImageView imageView = //find your image view;
imageView.setImageBitmap(bitmap);