【问题标题】:Find if a touch is inside a view in Android查找触摸是否在Android中的视图内
【发布时间】:2011-09-16 06:05:50
【问题描述】:

我有一张图片和图片下方的TextView,这是图片的标题。当我触摸文本时,我想将图像的状态更改为选中。我捕获了触摸向上和触摸事件以分别将图像的状态更改为选中和未选中。

我想实现触摸取消,即如果我触摸TextView 内部并拖动外部并移开手指,则图像状态应设置为未选中。我如何知道触摸是否在视图中?

我的申请目标等级是 7。

【问题讨论】:

    标签: android


    【解决方案1】:

    回答我的问题。我通过将图像视图和文本视图放在视图中解决了这个问题。并将图像视图的属性 duplicateParentState 设置为 true。

    【讨论】:

      【解决方案2】:

      你可以通过标志变量来做,比如当你按下标志时,如果你拖动手指然后像这里一样明智地关闭标志

      boolean isDown = false;
      public boolean onTouchEvent(MotionEvent event, final MapView mapView) {
          final int action=event.getAction();
          final int x=(int)event.getX();
          final int y=(int)event.getY();
      
          if (action==MotionEvent.ACTION_DOWN) {
             isDown = true;
          }else if(acttion == Motion.ACTION_MOVE){
             isDown = false;
          }else if(action === MotionEvent.ACTION_UP){
              if(isDown){
                   // do something here
              }
          }
          return (isDown | super.onTouchEvent(event, mapView));
      }
      

      【讨论】:

      • 谢谢。我的问题是我怎么知道我 Motion.Action_Move 已经移出视图或仍在视图内。如果在用户进行触摸之前它的手指仍在视图内,我不想取消触摸
      • @user866821 我相信有一个MotionEvent.ACTION_OUTSIDE。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-11
      • 1970-01-01
      相关资源
      最近更新 更多