Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 图形的透明视图覆盖_Android_Android Layout_Overlay - Fatal编程技术网

Android 图形的透明视图覆盖

Android 图形的透明视图覆盖,android,android-layout,overlay,Android,Android Layout,Overlay,我有一个由RelativeLayout、TableLayout和一些按钮组成的应用程序。现在我想在用户在屏幕上按下的点下画一个圆。一种方法是扩展视图并在其中添加所有功能,但我想知道是否有更优雅(通用)的解决方案 我想用透明覆盖的方式,你们可以将它添加到布局中,它可以捕捉运动事件,在触摸点上画圆圈,并将事件传递给底层的视图组件(所以按钮仍然可以点击) 这样的解决方案将更加可重用,因为您可以轻松地将其插入任何项目中,但不幸的是,我不知道这样做是否可行。有什么提示吗?我敢肯定,您可以使用手势Overl

我有一个由RelativeLayout、TableLayout和一些按钮组成的应用程序。现在我想在用户在屏幕上按下的点下画一个圆。一种方法是扩展视图并在其中添加所有功能,但我想知道是否有更优雅(通用)的解决方案

我想用透明覆盖的方式,你们可以将它添加到布局中,它可以捕捉运动事件,在触摸点上画圆圈,并将事件传递给底层的视图组件(所以按钮仍然可以点击)


这样的解决方案将更加可重用,因为您可以轻松地将其插入任何项目中,但不幸的是,我不知道这样做是否可行。有什么提示吗?

我敢肯定,您可以使用
手势OverlayView
实现您想要的效果

资源和示例如下:


    • 我不知道我的建议是否是最好的解决方案,但我会做以下几点: 创建扩展Drawable的新类。
      重写onDraw方法,并在画布上绘制圆。 加上。加圆(整数x,整数y);方法添加到可绘制类,您将在每次添加圆时调用该类

      然后在活动中创建上述类的新对象,并将其设置为context.getWindow().setBackgroundDrawable(您的对象)作为WindowBackground。然后在处理motionevent的位置调用这个objects.addCircle方法,您的圆将被添加


      像这样,您的活动中只有几行代码,并且可以重用。

      我查看了GestureOverlayView,然后创建了自己的类扩展just View。必须覆盖dispatchDraw,首先绘制子对象,然后再绘制覆盖,否则在大多数情况下,子对象会使您透支。