动画中的View点击事件

seker_xinjian 2011-11-25 02:19:38
我的Activity的View需要播放动画,这个动画是一直循环着的(需要这种现实效果)。用户可以点击这个动画播放中的View。怎么样才能判断这个View被点中了呢?

PS:
1、这个动画是一个AnimationSet(TranslateAnimation + ScaleAnimation + AlphaAnimation)
2、我所说的点中,是指View在动画中的显示区域,而不是View在父View中的Layout区域。
3、我试过了一下的方法都不正确:
Rect outRect = new Rect();
view.getHitRect(outRect);
view.getFocusedRect(outRect);
view.getDrawingRect(outRect);
view.getGlobalVisibleRect(outRect);
view.getLocalVisibleRect(outRect);
...全文
668 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangpeng98 2014-01-20
  • 打赏
  • 举报
回复
最讨厌这种人,只知道问其他人问题。从不奉献
seker_xinjian 2012-05-10
  • 打赏
  • 举报
回复
敢说啊,怎么了?
幽夜星 2012-05-04
  • 打赏
  • 举报
回复
LZ敢不敢说说怎么搞定的。。。
seker_xinjian 2011-11-30
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 hotkarriver 的回复:]

那可能要知道动画在每一时间点的坐标了,如果用户点击事件等于动画该时间运行到的坐标点,就响应
[/Quote]

能得到这个显示区域的坐标?
hotkarriver 2011-11-30
  • 打赏
  • 举报
回复
那可能要知道动画在每一时间点的坐标了,如果用户点击事件等于动画该时间运行到的坐标点,就响应
seker_xinjian 2011-11-30
  • 打赏
  • 举报
回复
嘎嘎嘎嘎嘎,自己搞定了,嘿嘿!!!!!
oyq_yangy 2011-11-30
  • 打赏
  • 举报
回复
动画时候的“显示区域”,那就是说你能得到这个显示区域的坐标了。那么onTouchEvent应该就可以判断吧
seker_xinjian 2011-11-30
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 oyq_yangy 的回复:]

不太明白什么意思。。。
[/Quote]

简单点说,就是我的一个imageview,在做动画中呢,现在用户要去点击它,它必须响应点击事件。

问题点是:点击这个ImageView做动画时候的“显示区域”,怎么样才能正确的响应点击事件?
oyq_yangy 2011-11-30
  • 打赏
  • 举报
回复
不太明白什么意思。。。
seker_xinjian 2011-11-30
  • 打赏
  • 举报
回复
自己顶
seker_xinjian 2011-11-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jindan_jinming 的回复:]

引用 7 楼 feng88724 的回复:
引用 5 楼 seker_xinjian 的回复:

引用 4 楼 feng88724 的回复:

变通一下,考虑让View在动画中的显示区域 = View在父View中的Layout区域。或者对Activity整个View监听onclick,判断坐标区域


这种变通效果肯定能出来的,只是代价太惨重了吧?

这都已经不是在Andr……
[/Quote]

不是吧?大侠们快点出来帮帮偶吧....
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 feng88724 的回复:]
引用 5 楼 seker_xinjian 的回复:

引用 4 楼 feng88724 的回复:

变通一下,考虑让View在动画中的显示区域 = View在父View中的Layout区域。或者对Activity整个View监听onclick,判断坐标区域


这种变通效果肯定能出来的,只是代价太惨重了吧?

这都已经不是在Android传统意义上的动画。而是需要在动画的每一个时……
[/Quote]
期待ing~~~
幻影浪子 2011-11-28
  • 打赏
  • 举报
回复
变通一下,考虑让View在动画中的显示区域 = View在父View中的Layout区域。或者对Activity整个View监听onclick,判断坐标区域
幻影浪子 2011-11-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 seker_xinjian 的回复:]

引用 4 楼 feng88724 的回复:

变通一下,考虑让View在动画中的显示区域 = View在父View中的Layout区域。或者对Activity整个View监听onclick,判断坐标区域


这种变通效果肯定能出来的,只是代价太惨重了吧?

这都已经不是在Android传统意义上的动画。而是需要在动画的每一个时间插值点上,重新让这个View进行onMesure,然后……
[/Quote]

不然的话就尝试使用WindowManage,这个应该可以达到效果,而且监听也很方便。 就是控制稍微就麻烦些吧。

其他更好的方法,你研究出来后还请共享给大家。
zoleeLian 2011-11-28
  • 打赏
  • 举报
回复
好高深的问题..
seker_xinjian 2011-11-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 feng88724 的回复:]

变通一下,考虑让View在动画中的显示区域 = View在父View中的Layout区域。或者对Activity整个View监听onclick,判断坐标区域
[/Quote]

这种变通效果肯定能出来的,只是代价太惨重了吧?

这都已经不是在Android传统意义上的动画。而是需要在动画的每一个时间插值点上,重新让这个View进行onMesure,然后onLayout,然后onDraw。
seker_xinjian 2011-11-26
  • 打赏
  • 举报
回复
help!
seker_xinjian 2011-11-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 asssasharp 的回复:]

把动画做成一个按钮行不行。移动的时候移动按钮。让按钮跟着动画图片做。这样就可以点中。按钮的背景就是动画。
[/Quote]

汗!我做动画就是用ImageView,ImageView自然是支持onClick事件的,何必要加一个button。

我先说明一下,View做在做动画的时候,它并没有真的移动它的位置。而是根据时间的插值,计算出一个Matrix,然后不停的invalidate,在onDraw中的Canvas中使用这个计算出来的Matrix去draw这个View。不知道我这样讲,大家能不能明白?

换句话说,View在做动画的时候,它的位置并没有变化,只是画它的时候进行了Matrix处理,使得它看起来变化了。它的点击事件的相应区域仍然是它不做动画的那块区域。
asssasharp 2011-11-26
  • 打赏
  • 举报
回复
把动画做成一个按钮行不行。移动的时候移动按钮。让按钮跟着动画图片做。这样就可以点中。按钮的背景就是动画。

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧