gpt4 book ai didi

android - 如何从 xml 中定义的可绘制对象中获取位图?

转载 作者:IT王子 更新时间:2023-10-29 00:05:55 25 4
gpt4 key购买 nike

如何从可绘制的 xml 形状中获取位图。我做错了什么?

shadow.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >

<gradient
android:angle="270.0"
android:endColor="@android:color/transparent"
android:startColor="#33000000"
android:type="linear" />

<size android:height="7.0dip" />

</shape>

我从drawable中检索位图的方法:

private Bitmap getBitmap(int id) {
return BitmapFactory.decodeResource(getContext().getResources(), id);
}
当传入的 id 是 shadow.xml 可绘制 id 时,

getBitmap() 返回 null。

最佳答案

这是一个完全有效的解决方案:

private Bitmap getBitmap(int drawableRes) {
Drawable drawable = getResources().getDrawable(drawableRes);
Canvas canvas = new Canvas();
Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
canvas.setBitmap(bitmap);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
drawable.draw(canvas);

return bitmap;
}

这是一个例子:

Bitmap drawableBitmap = getBitmap(R.drawable.circle_shape);

circle_shape.xml

<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<size
android:width="15dp"
android:height="15dp" />
<solid
android:color="#94f5b6" />
<stroke
android:width="2dp"
android:color="#487b5a"/>
</shape>

关于android - 如何从 xml 中定义的可绘制对象中获取位图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10111073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com