Android开发 - 如何将LayerDrawable转换为Drawable或Bitmap

时间:2016-06-23 14:09:23

标签: android imageview android-drawable android-bitmap layerdrawable

我正在编写一个简单的应用程序,它需要两个图像1)照片和2)过滤器(图像文件)然后过滤器将应用于照片。但我也希望在图像重叠后将图像保存在内部存储器中。正如您在下面的代码中看到的,在最后一行中我创建了位图对象filteredPhoto,因此它可用于保存图像,但由于In-convertible类型而无法引用它。

有两种方法,

1)LayerDrawable对象转换为Drawable,然后将其引用到位图对象(通过强制转换)

2)如果可能,请将LayerDrawable直接转换为Bitmap

任何人都可以解释我如何实现这一目标吗?

注意:其他人可能已经提出过这个问题,但他们都没有正确回复。他们中的大多数人都说使用Canvas,但我无法找到Canvas如何帮助我解决问题,所以请不要将我的问题标记为重复。

代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    theImageViewMID = (ImageView) findViewById(R.id.theImageView_MID);

    Drawable layers[] = new Drawable[2];
    layers[0] = ContextCompat.getDrawable(this, R.drawable.image_1546);
    layers[1] = ContextCompat.getDrawable(this, R.drawable.new_filter);
    layers[1].setAlpha(75);

    LayerDrawable layerDrawable = new LayerDrawable(layers);

    theImageViewMID.setImageDrawable(layerDrawable);

    layerDrawable.set

    Bitmap filteredPhoto = ((BitmapDrawable) LayerDrawable).getBitmap();
    //MediaStore.Images.Media.insertImage(getContentResolver(), filteredPhoto, "THIS IS TITLE", "THIS IS DESCRIPTION");
}

0 个答案:

没有答案