我想用这段代码在画布上绘制一个drawable,但它不起作用,我不知道为什么
getResources().getDrawable(R.drawable.allergist).draw(canvas);
我将自定义视图的高度和宽度设置为匹配父级,但整个屏幕为白色且屏幕上没有可绘制的
答案 0 :(得分:1)
您需要将
image
加载为bitmap
:
Resources res = getResources();
Bitmap bitmap = BitmapFactory.decodeResource(res, R.drawable.allergist);
然后制作
bitmap mutable
并在其上创建一个画布:
Canvas canvas = new Canvas(bitmap.copy(Bitmap.Config.ARGB_8888, true));
之后你可以在画布上画画。
编辑1
将界限设为
Drawable
。
Drawable d = getResources().getDrawable(R.drawable.allergist);
d.setBounds(left, top, right, bottom);
d.draw(canvas);
答案 1 :(得分:0)
我们遇到了类似的问题,我们通过调用drawable.invalidateSelf()来解决它。之后,它成功渲染到我们的画布上。