我的应用程序包含RelativeLayout,TableLayout和一些按钮。现在我想在用户按下屏幕的点下绘制一个圆圈。一种方法是扩展View并在里面添加所有功能,但我想知道是否有更优雅(通用)的解决方案?
我正在思考透明叠加,你将其添加到布局中并捕获MotionEvent,在触摸点上绘制圆圈并将事件传递给基础View组件(因此按钮仍然可以点击)。
这样解决方案会更加可重用,因为您可以轻松地将其插入任何项目中,但不幸的是我不知道它是否可行。任何提示?
答案 0 :(得分:1)
我很确定你可以使用GestureOverlayView
实现你想要的目标。
提供了资源和示例:
答案 1 :(得分:0)
我不知道我的建议是否是最佳解决方案,但我会做以下事情: 创建一个扩展Drawable的新类 覆盖onDraw方法,然后在画布上绘制圆圈。 添加一个。 addCircle(int x,int y);每次要添加圆圈时,您将调用的可绘制类的方法。
然后在您的活动中创建上述类的新对象,并使用context.getWindow()。setBackgroundDrawable(您的对象)将其设置为WindowBackground。然后在你处理你的动作事件的地方调用这个对象.addCircle方法和你的圆圈将被添加。
在您的活动中,这样只有几行代码,并且可以重复使用。