【发布时间】:2018-11-28 15:32:33
【问题描述】:
我使用下面的方法在布局上绘制了一些东西,它工作正常,矩形显示出来,但 UI 上的其他所有内容都变得不可见,即使画布不在 UI 元素上。
我找不到任何类似的解决方案,所以我来问你们。
我怀疑这是 setContentView(myview) 的问题,它非常简单,但我被卡住了。
这是我的代码:
// MyView.java
public class MyView extends View {
Paint paint;
Path path;
public MyView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
paint = new Paint();
paint.setColor(Color.MAGENTA);
paint.setStrokeWidth(10);
paint.setStyle(Paint.Style.FILL_AND_STROKE);
canvas.drawRect(0, 0, 20, 20, paint);
}
// MainActivity: void onCreate()
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyView myview = new MyView(getBaseContext());
setContentView(myview);
【问题讨论】:
-
您不应该将 baseContext 用于查看 - 使用活动上下文,因为视图绑定到活动。此外,您应该将视图添加到布局中(以编程方式或最好在 xml 中),而不是设置内容视图两次(因为第二次会覆盖第一次)。
标签: java android canvas view draw