Android:在画布上绘制视图

Joh*_*nny 5 android android-layout android-canvas

我有一个充气的视图,我可以在画布上绘制它,但似乎无法正确定位它.

LayoutInflater li = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = li.inflate(R.layout.fix_this_recommendation, null);
v.measure(MeasureSpec.getSize(v.getMeasuredWidth()), MeasureSpec.getSize(v.getMeasuredHeight()));
v.layout(400, 400, 400, 400);
v.draw(canvas);
Run Code Online (Sandbox Code Playgroud)

但视图始终位于左上角.谁知道为什么?

Pet*_*rdk 12

解决方法是翻译画布:

canvas.save();
canvas.translate(left, top);            
view.draw(canvas);
canvas.restore();
Run Code Online (Sandbox Code Playgroud)


Law*_*iro 3

每个视图都在自己的坐标系内绘制其内容,坐标系 (0, 0) 位于左上角。如果您希望它出现在其他地方,您可以在画布上设置一个新的变换矩阵。