View 上的 onDraw() 在布局后面绘制
好的,事情就这样了。我想移动扩展图库类中的项目以更改图像的顺序。我现在这样做的方式:
- 长按删除当前选定的项目,
- 使用
onDraw()
绘制相同的图像,以便我可以使用onTouchEvent()
移动它> - 在发布时再次添加该项目
这工作正常,但问题是,当使用 onDraw()
方法时,它将在图库项目后面绘制图像。有没有办法改变绘制内容的优先级?
Ok, here's the deal. I want to move items in my extended gallery class to change the order of images. The way i'm doing it now:
- on long press remove the current selected item,
- use
onDraw()
to draw the same image so i can move it around usingonTouchEvent()
- on release add the item again
This works fine but the problem is that when using the onDraw()
method it will draw the image behind the gallery items. Is there a way to change the priority of what is drawn?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好吧,我在进入完全不同的方向后发现了这一点=/
这是具有相同问题的人的解决方案:
在构造函数(或初始化组件的其他任何地方)设置
setWillNotDraw(false)
并覆盖dispatchDraw()
。dispatchDraw()
绘制ViewGroup
子级,因此您可以自己决定是否要在其他视图的后面或顶部绘制。示例取自自定义绘图图库视图的顶部(及其子视图)
Well i found this out after going into a totally different direction =/
Here's the solution for people that have the same problem:
In constructor (or anywhere else you initialize the component) set
setWillNotDraw(false)
and overridedispatchDraw()
.dispatchDraw()
draws theViewGroup
children so you can decide yourself if you want to draw behind or a top of the other views.Example taken from Custom drawing on top of Gallery view (and it's child views)