Android 图形的透明视图覆盖
我有一个由RelativeLayout、TableLayout和一些按钮组成的应用程序。现在我想在用户在屏幕上按下的点下画一个圆。一种方法是扩展视图并在其中添加所有功能,但我想知道是否有更优雅(通用)的解决方案 我想用透明覆盖的方式,你们可以将它添加到布局中,它可以捕捉运动事件,在触摸点上画圆圈,并将事件传递给底层的视图组件(所以按钮仍然可以点击)Android 图形的透明视图覆盖,android,android-layout,overlay,Android,Android Layout,Overlay,我有一个由RelativeLayout、TableLayout和一些按钮组成的应用程序。现在我想在用户在屏幕上按下的点下画一个圆。一种方法是扩展视图并在其中添加所有功能,但我想知道是否有更优雅(通用)的解决方案 我想用透明覆盖的方式,你们可以将它添加到布局中,它可以捕捉运动事件,在触摸点上画圆圈,并将事件传递给底层的视图组件(所以按钮仍然可以点击) 这样的解决方案将更加可重用,因为您可以轻松地将其插入任何项目中,但不幸的是,我不知道这样做是否可行。有什么提示吗?我敢肯定,您可以使用手势Overl
这样的解决方案将更加可重用,因为您可以轻松地将其插入任何项目中,但不幸的是,我不知道这样做是否可行。有什么提示吗?我敢肯定,您可以使用
手势OverlayView
实现您想要的效果
资源和示例如下:
- 我不知道我的建议是否是最好的解决方案,但我会做以下几点:
创建扩展Drawable的新类。
重写onDraw方法,并在画布上绘制圆。 加上。加圆(整数x,整数y);方法添加到可绘制类,您将在每次添加圆时调用该类 然后在活动中创建上述类的新对象,并将其设置为context.getWindow().setBackgroundDrawable(您的对象)作为WindowBackground。然后在处理motionevent的位置调用这个objects.addCircle方法,您的圆将被添加
像这样,您的活动中只有几行代码,并且可以重用。我查看了GestureOverlayView,然后创建了自己的类扩展just View。必须覆盖dispatchDraw,首先绘制子对象,然后再绘制覆盖,否则在大多数情况下,子对象会使您透支。