我正在开发一个自定义视图,我需要在其中绘制可绘制的内容。可绘制的必须有其相对位置。
下面是我的代码:
@Override
protected void onDraw(Canvas canvas) {
//drawBackground(canvas);
float height = (float) getHeight();
float width = (float) getWidth();
canvas.save(Canvas.MATRIX_SAVE_FLAG);
canvas.scale(width, height);
drawFlowChart(canvas);
drawDrawables(canvas);
canvas.restore();
}
private void drawDrawables(Canvas canvas) {
canvas.save(Canvas.MATRIX_SAVE_FLAG);
Resources res = getResources();
Bitmap bitmap = BitmapFactory.decodeResource(res, R.drawable.motor);
canvas.drawBitmap(bitmap, 0.51f, 0.35f, null);
canvas.restore();
}但它什么也得不到。有什么想法吗?
我尝试使用drawBitmap(位图、源、dest、绘图),但我不知道如何使用此定义定位具有相对位置的位图。
发布于 2016-07-08 16:05:14
可能是您在onDraw中调用的getHeight()和getWidth()函数,返回0,以便缩放画布而看不到任何东西。
你可以引用两个链接来更新画布的宽度和高度来绘制:
Android getWidth() return 0 in View's onDraw Android: How to get a custom View's height and width?
https://stackoverflow.com/questions/38261602
复制相似问题