ziL*_*iLk 3 java android android-vectordrawable
我在我的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);
Run Code Online (Sandbox Code Playgroud)
注意:Android如何以编程方式调整(缩放)xml矢量图标的答案并不能解决我的问题.
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);
Run Code Online (Sandbox Code Playgroud)
然后使用它bitmap来显示如下所示的内容.首先将其转换为BitmapDrawable
BitmapDrawable bd = new BitmapDrawable(bitmap);
buttonsetCompoundDrawablesRelativeWithIntrinsicBounds(bd, null, null, null);
Run Code Online (Sandbox Code Playgroud)
您也可以在助手功能中返回bd.
要在23之前的API上使用它,请将其放入 build.gradle
vectorDrawables.useSupportLibrary = true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2226 次 |
| 最近记录: |