在画布上绘制drawable不起作用

时间:2016-05-25 06:29:55

标签: java android layout

我想用这段代码在画布上绘制一个drawable,但它不起作用,我不知道为什么

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

我将自定义视图的高度和宽度设置为匹配父级,但整个屏幕为白色且屏幕上没有可绘制的

2 个答案:

答案 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()来解决它。之后,它成功渲染到我们的画布上。