0

我目前在我的应用程序中使用 BitmapDrawable,但不幸的是,这个实现在 Lollipop 中似乎有些破损(在 LP 之前它工作正常,关于这个问题有一个单独的问题)。

所以,好的,我有一个 XML 文件,基本上是这样的:

背景.xml

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/backgrounds_xlarge" />

上面是一个 XML 文件(别名),它指向一个实际的 png 文件。

在我的代码中,我得到这样的位图:

代码

BitmapDrawable bd = (BitmapDrawable) view.getResources().getDrawable(R.drawable.backgrounds);
backgrounds = bd.getBitmap();

这个问题是问是否有另一种方法来获取这个位图?请注意,BitmapFactory 对我没有好处,因为我必须能够通过上面显示的 xml 别名获取此位图。

我已经阅读了有关创建 XML 别名的官方文档,但不幸的是,在解释如何访问位图时,它们有些欠缺。

任何帮助或建议表示赞赏。

4

1 回答 1

1

Bitmap这是从 a获取 a 的另一种方法BitmapDrawable,使用 a Canvas

    BitmapDrawable bd = (BitmapDrawable) view.getResources().getDrawable(R.drawable.backgrounds);
    Bitmap backgrounds = Bitmap.createBitmap(bd.getIntrinsicWidth(), bd.getIntrinsicHeight(), Config.ARGB_8888);
    Canvas canvas = new Canvas(backgrounds); 
    bd.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
    bd.draw(canvas);
于 2015-01-06T05:35:54.987 回答