标签: touch-event

Android OnGestureListener Fling未检测到

我想检测屏幕块中的投掷动作.我正在使用以下代码.

public class MyinfoActivity extends Activity implements OnGestureListener {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        ..........
        ..........
        gestureScanner = new GestureDetector(this);
        resBlock = (TableRow) findViewById(R.id.ResBlock);
        gestureScanner = new GestureDetector(this);
    }

    @Override
    public boolean onTouchEvent(MotionEvent me){
        Log.d(null,"Touch");
        if (gestureScanner.onTouchEvent(me))
            return gestureScanner.onTouchEvent(me);
        else
            return false;
    }

    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2,
                       float velocityX, float velocityY) {
        Log.d(null,"Fling");
        ............
        ............
    }

    @Override
    public boolean onDown(MotionEvent arg0) {
        return false;
    }

    @Override
    public void onLongPress(MotionEvent e) {}

    @Override
    public boolean onScroll(MotionEvent e1, …
Run Code Online (Sandbox Code Playgroud)

android gesture touch-event onfling

10
推荐指数
1
解决办法
1万
查看次数

如何使用MapFragment(而不是MapView)获取地图的坐标?

我搜索了如何在点击地图时获取位置的坐标.但是,大多数(如果不是全部)示例都需要MapView作为参数.例如:

public boolean onTap(GeoPoint p, MapView map){
    if ( isPinch ){
        return false;
    }else{
        Log.i(TAG,"TAP!");
        if ( p!=null ){
            handleGeoPoint(p);
            return true;            // We handled the tap
        }else{
            return false;           // Null GeoPoint
        }
    }
}

@Override
public boolean onTouchEvent(MotionEvent e, MapView mapView)
{
    int fingers = e.getPointerCount();
    if( e.getAction()==MotionEvent.ACTION_DOWN ){
        isPinch=false;  // Touch DOWN, don't know if it's a pinch yet
    }
    if( e.getAction()==MotionEvent.ACTION_MOVE && fingers==2 ){
        isPinch=true;   // Two fingers, def a pinch
    }
    return super.onTouchEvent(e,mapView); …
Run Code Online (Sandbox Code Playgroud)

android location touch-event mapfragment google-maps-android-api-2

10
推荐指数
1
解决办法
1万
查看次数

在MKMapView的叠加层上触摸事件

在我正在设计的应用程序中,我有一个MKMapView覆盖它(自定义MKPolylinesbtw),我希望能够检测这些覆盖上的触摸事件,并为每个覆盖分配特定的操作.有人可以帮我这个吗?谢谢 !

贝尼亚

overlay mkmapview touch-event mkpolyline

9
推荐指数
2
解决办法
5676
查看次数

Android MediaController拦截所有其他触摸事件

我的应用程序的上半部分VideoView有一个MediaController下面的.下半部分是带有一些按钮的图像.虽然MediaController可见,但下面的按钮不可点击.它就像是MediaController可见的,它会拦截所有其他触摸事件,即使它们不在范围内MediaController.

有什么想法吗?

android touch-event mediacontroller

9
推荐指数
2
解决办法
3171
查看次数

触摸事件由多个视图处理

我有一个子类UIView上的顶部UITableView.我正在使用它UITableView来显示一些数据,同时,我想覆盖手指后面的动画(例如,留下一条线索).

如果我是正确的,我需要的触摸事件要处理两个UIView子和UITableView.我怎样才能做到这一点?是否可以touchesMoved在UIView子类上触发,然后再触发UITableView

非常感谢你的帮助.

touch touchesmoved touch-event ios uievent

9
推荐指数
1
解决办法
1万
查看次数

WebView摆脱双击缩放.

我读了很多关于缩放WebViews主题的门票,并没有找到我的案例的答案.

这是我的设置:

我通常使用这些设置的自定义webview:

getSettings().setBuiltInZoomControls(false);
getSettings().setSupportZoom(false);
getSettings().setUseWideViewPort(true);
getSettings().setLoadWithOverviewMode(true);
Run Code Online (Sandbox Code Playgroud)

让我在这里注意,我依赖于OverviewMode以及WideViewPort来扩展我的WebView.

我还覆盖我的OnTouchEvent,并将所有合适的事件委托给Gesture检测器:

  @Override
  public boolean onTouchEvent(MotionEvent event) {
    if (gestureDetector.onTouchEvent(event)) return true;
    return super.onTouchEvent(event);
  }
Run Code Online (Sandbox Code Playgroud)

以下是其侦听器实现,它拦截所有doubleTap事件:

  @Override
  public boolean onDoubleTapEvent(MotionEvent e) {
    // Do nothing! 
    return true;
  }

  @Override
  public boolean onDoubleTap(MotionEvent e) {
    // Do nothing! 
    return true;
  }

  @Override
  public boolean onSingleTapConfirmed(MotionEvent e) {
    // Do nothing! 
    return true;
  }
Run Code Online (Sandbox Code Playgroud)

另外我覆盖了与zoom有关的这两个WebView方法:

  @Override
  public boolean zoomIn() {
    return true;
  }

  @Override
  public boolean zoomOut() {
    return true;
  }
Run Code Online (Sandbox Code Playgroud)

除了所有这些选项之外,某个抽头频率将导致我的webview放大/缩小.我没有找到一个禁用这种缩放的选项,此Zoom的MotionEvent似乎不适用于GestureDetector,并且覆盖zoomIn()zoomOut()方法也没有效果.

任何人都可以帮助我避免这种双击缩放WebView的行为吗?

android zoom webview touch-event motionevent

9
推荐指数
1
解决办法
7450
查看次数

如果touchmove fires,取消touchend

我正在构建一些主要用于平板电脑的东西,用户可以点击屏幕上的项目并应用它.这是我到目前为止:

问题:

  1. 我想使用触摸事件来删除类并在触摸端添加类(以使其更快).
  2. 如果用户滑动(touchmoves),我不希望它做任何事情.

我尝试过很多东西,但都没有.我尝试过的最简单的(失败的)是这样的:

var dragging = false;

$(".items").on("touchmove", function(){
      dragging = true;
});

$('.items').on("click touchend", function(event){
    if (dragging = true){
    }
    else{
    $('.items').removeClass('selected');
    $(this).addClass('selected');
    }
});
Run Code Online (Sandbox Code Playgroud)

javascript jquery click touch-event touchmove

9
推荐指数
2
解决办法
1万
查看次数

Android onTouchEvent坐标跳过

我的应用程序,我有一个元素,要求用户在屏幕上移动它,为此我使用RelativeLayout和onTouchListener.

那我遇到的问题是,我的脑海中onTouchListener,我得到一些奇怪的结果getX()getY().

我将以下代码行添加到我的onTouch()- > ACTION_MOVE块中:

Log.v("example", "Touch: {x:" + event.getX() + " } {y:" + event.getY() + "}");

以下是我的LogCat结果.

04-29 03:16:11.000:V/myApp(24188):触摸!
04-29 03:16:11.057:V/myApp(24188):触摸:{x:69.78699} {y:107.774216} 04-29
03:16:11.103:V/myApp(24188):触摸:{x:77.86926 } {y:173.37648} 04-29
03:16:11.158:V/myApp(24188):触摸:{x:69.78699} {y:108.781845} 04-29
03:16:11.205:V/myApp(24188):触摸:{x:77.86926} {y:174.38597} 04-29
03:16:11.463:V/myApp(24188):触摸:{x:69.78699} {y:109.64778} 04-29
03:16:11.502:V/myApp(24188):触摸:{x:77.86926} {y:175.62172} 04-29
03:16:11.596:V/myApp(24188):触摸:{x:69.23099} {y:109.40666} 04-29
03 :16:11.654:V/myApp(24188):Touch Up!

如你所见,我的手指在一条直线上非常缓慢地移动,我得到一个跳跃的结果,其中正确的坐标实际上是每隔一行.

当我将其拖过屏幕时,这导致我的视​​图在所需位置和偏移位置之间跳回和第四.

我已经添加了检查以确保我只创建一个单独的元素,并且不会从除此单个视图之外的任何位置调用此侦听器.

有没有其他人之前看过这个问题,并且对我能做些什么来解决它有任何见解?

编辑

View.OnTouchListener onTouch = new View.OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {

        switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN: …
Run Code Online (Sandbox Code Playgroud)

java android touch ontouchlistener touch-event

9
推荐指数
1
解决办法
2061
查看次数

superview的手势是否应取消iOS 7中子视图的手势?

几年来我一直在假设如果超视图及其子视图都具有手势识别器,子视图将首先接收触摸并取消超视图的手势.直到iOS 7,这个假设从未让我失望,允许我向子视图添加手势,确信superview的手势不会干扰.但是在iOS 7中,超级视图将首先随机接收触摸并取消子视图的手势.这种情况很少发生,这使问题难以发现.

我第一次经历这个问题,因为按钮无法UITapGestureRecognizer再次使用...,很少.通常按钮会工作,直到它们没有.让你有点质疑你的理智.所以我自己动手TapGestureRecognizer,发现superview水龙头有时会取消他们的子视频水龙头.它在任何以前版本的iOS中都没有这样做,但我想知道这种行为是否从未被承诺过.

我认为子视图的手势应该取消它的superview的手势(除非委托另有指定).这是错的还是这个错误?

请注意:我不是问如何处理这种情况.我问是否有人知道我的假设是否不正确.我已经重新安排视图,动态添加/删除手势,并创建相当复杂的实现gestureRecognizer:shouldReceiveTouch:来纠正这种情况.这不好玩,但我可以解决这个问题.

touch-event uigesturerecognizer ios ios7

9
推荐指数
1
解决办法
4310
查看次数

按下按钮时如何反复做某事?

我正在使用特定的中间件(不重要)在Android中开发一个电视远程模拟器应用程序.

在音量按钮(音量+和音量 - )的情况下,我要做的是在按下按钮时重复发送"音量调高"信号.

这就是我最后尝试的(其中一个按钮的代码,另一个必须相同,除了名称):

  1. 声明了一个布尔变量

    boolean pressedUp = false;
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用以下AsyncTask声明了一个内部类:

    class SendVolumeUpTask extends AsyncTask<Void, Void, Void> {
    
        @Override
        protected Void doInBackground(Void... arg0) {
            while(pressedUp) {
                SendVolumeUpSignal();
        }
        return null;
    }
    
    Run Code Online (Sandbox Code Playgroud)

    }

  3. 将侦听器添加到按钮:

    final Button buttonVolumeUp = (Button) findViewById(R.id.volup);
    buttonVolumeUp.setOnTouchListener(new View.OnTouchListener() {
    
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            switch (event.getAction()) {
    
            case MotionEvent.ACTION_DOWN:
    
                if(pressedUp == false){
                    pressedUp = true;
                    new SendVolumeUpTask().execute();
                }
    
            case MotionEvent.ACTION_UP:
    
                pressedUp = false;
    
        }
            return true;
        }
    });
    
    Run Code Online (Sandbox Code Playgroud)

我也尝试使用简单的线程,如在Increment-Decrement计数器中按下按钮但不起作用.该应用程序可以很好地用于其余按钮(通道等),但完全忽略了音量变化.

android button ontouchlistener touch-event

8
推荐指数
1
解决办法
4314
查看次数