gpt4 book ai didi

java - 以编程方式调整 vectordrawable 图标的大小

转载 作者:太空宇宙 更新时间:2023-11-03 12:28:07 24 4
gpt4 key购买 nike

我在我的 android 项目中动态显示一些 VectorDrawable 图标。但是,我无法使用以下代码缩放 java 层中的图标:

VectorDrawable jDrawable = (VectorDrawable) getContext().getDrawable(nResourceID);

// resize the icon
jDrawable.setBounds(30, 30, 30, 30);

// set the icon in the button view
button.setCompoundDrawablesRelativeWithIntrinsicBounds(jDrawable, null, null, null);

注意:Android how to resize (scale) an xml vector icon programmatically答案没有解决我的问题。

最佳答案

jDrawable.setBounds 由于 android 中的错误而无法工作。

克服该错误的一种方法是将 VectorDrawable 转换为 Bitmap 并显示它。

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

然后使用此位图 显示如下所示的内容。首先将其转换为BitmapDrawable

BitmapDrawable bd = new BitmapDrawable(bitmap);
buttonsetCompoundDrawablesRelativeWithIntrinsicBounds(bd, null, null, null);

同样在你的辅助函数中你可以返回bd

要在 23 之前的 API 上使用它,请将其放入 build.gradle

vectorDrawables.useSupportLibrary = true 

关于java - 以编程方式调整 vectordrawable 图标的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42395036/

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