在画布中绘制可绘制不起作用

Ami*_*r_P 4 java layout android

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

getResources().getDrawable(R.drawable.allergist).draw(canvas);
Run Code Online (Sandbox Code Playgroud)

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

Jay*_* RJ 5

您需要加载您的imageas bitmap

 Resources res = getResources();
 Bitmap bitmap = BitmapFactory.decodeResource(res, R.drawable.allergist);
Run Code Online (Sandbox Code Playgroud)

然后制作bitmap mutable并在其上创建一个画布:

Canvas canvas = new Canvas(bitmap.copy(Bitmap.Config.ARGB_8888, true));
Run Code Online (Sandbox Code Playgroud)

之后,您可以在画布上绘制它。

编辑 1

将边界设置为Drawable

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