gpt4 book ai didi

android - 将 SVG 图像解码为位图

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:31:28 25 4
gpt4 key购买 nike

我正在使用 Android Studio 将我的 SVG 图像转换为 XML 文件。当我尝试使用 R.drawable.svgimage 访问它时它工作正常但现在我需要将该图像解码为位图。

我尝试了以下方法。它为位图返回 null。

mResId = R.drawable.svgimage
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap bitmap = BitmapFactory.decodeResource(
mContext.getResources(), mResId, options);

最佳答案

以下代码将完美运行我已经使用过它: 这里 R.drawable.ic_airport 是我存储在 drawable 文件夹中的 svg 图像。

    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
private static Bitmap getBitmap(VectorDrawable vectorDrawable) {
Bitmap bitmap = Bitmap.createBitmap(vectorDrawable.getIntrinsicWidth(),
vectorDrawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
vectorDrawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
vectorDrawable.draw(canvas);
Log.e(TAG, "getBitmap: 1");
return bitmap;
}

private static Bitmap getBitmap(Context context, int drawableId) {
Log.e(TAG, "getBitmap: 2");
Drawable drawable = ContextCompat.getDrawable(context, drawableId);
if (drawable instanceof BitmapDrawable) {
return BitmapFactory.decodeResource(context.getResources(), drawableId);
} else if (drawable instanceof VectorDrawable) {
return getBitmap((VectorDrawable) drawable);
} else {
throw new IllegalArgumentException("unsupported drawable type");
}
}

Bitmap bitmap = getBitmap(getContext(), R.drawable.ic_airport);

关于android - 将 SVG 图像解码为位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32716570/

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