android 悬浮框的OnTouch和OnClick事件同时存在

    在android应用中我做了一个悬浮框,布局界面就一个ImageView,setOnTouchListener是使这个图片移动,setOnClickListener是点击这个图片触发的事件,开始的时候我也没想多,发现只能触发一个事件。通过查资料,我了解了,当onTouch事件返回ture时将不会把事件传递到onClick事件(表面当前的事件已经处理,不需往下传递),因此我们需要控制好onTouch事件什么时候返回true或者false 来达到OnTouch和OnClick事件同时存在。

       现在我贴上关键代码进行分析下吧:

    

  isMove是全局变量,用来记录手指在手机屏幕上是否移动,false表示没,true表示滑动了,这个标记位很关键。

   

        接下来我们看OnTouchListener接口怎么实现的。

     

        

 

    前面我已经提到了需要控制好onTouch事件什么时候返回true或者false 来达到OnTouch和OnClick事件同时存在。因此当手指按下时我将isMove=false,此时手指没有

 在屏幕上移动,如果此时手指离开屏幕,那么直接返回isMove=false。当onTouch事件返回false时会把事件传递到onClick事件,此时点击事件是有效的。

    如果手指移动那么siMove=true,当onTouch事件返回ture时将不会把事件传递到onClick事件。此时只有imageview在屏幕在移动。

     还有个地方希望大家注意下,在用代码实现悬浮框时,设置window的属性:

     

     悬浮框的实现网上很多demo,我不细说了哈。

     然后我们只要将imageview绑定监听就好了。

     

       

        下面是我整个demo的代码实现的下载地址,供大家参考,如有问题大家提出来吧。

       http://download.csdn.net/detail/xiana2012/4889310

 

你可能感兴趣的:(android网络开发)