gpt4 book ai didi

android - 从矢量图中获取位图

转载 作者:IT老高 更新时间:2023-10-28 13:04:42 25 4
gpt4 key购买 nike

在我的应用程序中,我必须为通知设置一个大图标。LargeIcon 必须是位图,而我的可绘制对象是矢量图(Android 中的新功能,请参阅 this link)问题是,当我尝试解码矢量图像资源时,返回 null。

这是代码示例:

if (BitmapFactory.decodeResource(arg0.getResources(), R.drawable.vector_menu_objectifs) == null)
Log.d("ISNULL", "NULL");
else
Log.d("ISNULL", "NOT NULL");

在此示例中,当我将 R.drawable.vector_menu_objectifs 替换为“正常”图像时,例如 png,结果不为空(我得到正确的位图)我有什么遗漏吗?

最佳答案

已检查 API:17、21、23

public static Bitmap getBitmapFromVectorDrawable(Context context, int drawableId) {
Drawable drawable = ContextCompat.getDrawable(context, drawableId);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
drawable = (DrawableCompat.wrap(drawable)).mutate();
}

Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
drawable.draw(canvas);

return bitmap;
}

更新:

项目等级:

dependencies {
classpath 'com.android.tools.build:gradle:2.2.0-alpha5'
}

模块分级:

android {
compileSdkVersion 23
buildToolsVersion '23.0.3'
defaultConfig {
minSdkVersion 16
targetSdkVersion 23
vectorDrawables.useSupportLibrary = true
}
...
}
...

关于android - 从矢量图中获取位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33696488/

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