将BitmapDrawable转换为imageView

时间:2014-07-24 15:40:58

标签: java android

我有一个特殊情况,我非常接近完成!基本上,我在数据库中有一些需要在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然后绘制它?

我已尽力尝试填写我认为有效的方法。

由于

1 个答案:

答案 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);