java - 在 Canvas 中绘制可绘制不起作用

标签 java android layout

我想用这段代码在 Canvas 上绘制一个可绘制对象,但它不起作用,我也不知道为什么

getResources().getDrawable(R.drawable.allergist).draw(canvas);

我将自定义 View 的高度和宽度设置为与父级匹配,但整个屏幕都是白色的,屏幕上没有可绘制对象

最佳答案

You need to load your image as bitmap:

 Resources res = getResources();
 Bitmap bitmap = BitmapFactory.decodeResource(res, R.drawable.allergist);

Then make the bitmap mutable and create a canvas over it:

Canvas canvas = new Canvas(bitmap.copy(Bitmap.Config.ARGB_8888, true));

After that you can draw it on canvas.

编辑 1

Set bounds To Drawable.

Drawable d = getResources().getDrawable(R.drawable.allergist);
d.setBounds(left, top, right, bottom);
d.draw(canvas);

关于java - 在 Canvas 中绘制可绘制不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37429369/

相关文章:

java - Autobean 和 XSS 问题

android - Resources$NotFoundException 动态特性模块中的配置更改后

android - 如何知道在android中加载布局需要多少时间?

android - 如何让 ImageButton 在点击时直接打开电子邮件编辑器?

java - 自定义 setDropDownViewResource 微调项的示例

java - 在 Android 上禁用自动布局更改

java - 设置 JButton 的用户定义颜色

java - JBoss 类中的 LocalVariableTable 已损坏

Java pad 地址转为 64 位

java - 当 javafx 中发生操作时,如何更改分割 Pane 的一半,同时保持另一半不变