Articles of gesturedetector

SimpleOnGestureListener的onSingleTapUp从未调用过

我使用onTouchListener和手势检测器创建了一个自定义组件,我将自定义组件放在MainActivity的xml文件中,该文件同时包含onTouchEvent和手势检测器。 我想检测自定义组件上的单个点击并长按MainActivity,但似乎触摸侦听器在某种程度上相互作用并且从未检测到单个点击。 MainActivity.java: public class MainActivity extends ActionBarActivity { private GestureDetector detector; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); detector = new GestureDetector(this, new LongPressDetector()); } @Override public boolean onTouchEvent(MotionEvent event) { detector.onTouchEvent(event); int action = event.getActionMasked(); switch (action){ case MotionEvent.ACTION_DOWN:{ Log.d(“TouchEvent”, “Action_Down at MainActivity.java”); break; } } return super.onTouchEvent(event); } private class LongPressDetector […]

SimpleOnGestureListener代码在Android 2.2中无效

我编写了一些代码来实现Gallery小部件的垂直滑动。 它在Android 1.5和1.6中运行良好但在Android 2.2中不起作用(我还没有在2.1中尝试)。 public class SwipeUpDetector extends SimpleOnGestureListener implements OnTouchListener { private GestureDetector m_detector; public SwipeUpDetector() { m_detector = new GestureDetector(m_context, this); } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { if (Math.abs(e1.getX() – e2.getX()) = s_swipeMinDistance && Math.abs(velocityY) >= s_swipeMinVelocity) { int pos = m_gallery.pointToPosition((int)e1.getX(), (int)e2.getY()); startAnimation(pos); return true; […]

SimpleOnGestureListener永远不会进入onFling(…)方法

你好SimpleOnGestureListener不能在我的应用程序中工作这是我实现它的方式。 也许你可以发现什么是错的。 事情是调试显示应用程序永远不会进入onFling(…)方法和gdt.onTouchEvent(事件); 总是返回false:/任何想法? 谢谢 我的活动课 public class SimpleActivity extends Activity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.simpleLayout); final ImageView imageView = (ImageView) findViewById(R.id.gggbbb); imageView.setOnTouchListener(new OnFlingGestureListener() { @Override public void onTopToBottom() { System.out.println(“top”); } @Override public void onRightToLeft() { System.out.println(“right”); } @Override public void onLeftToRight() { System.out.println(“left”); } @Override public void onBottomToTop() { System.out.println(“bottom”); […]

如何将GestureDetector附加到ListPreference?

将GestureDetector附加到ListPreference的挑战是双重的: 获取仅在preferences.xml中定义的ListPreference句柄(即未在Java代码中实例化)。 ListPreference既不是View子类也不是Activity子类。 是否可以将GestureDetector附加到ListPreference ? 如果是这样,怎么会这样呢? 我会在哪里编写代码来实例化GestureDetector并实现监听器?

立即跟随手势的Android ViewFlipper

我在ViewFlipper上使用GestureDetector来实现showPrevious和showNext。 一切安好。 但是,我希望ViewFlipperanimation能够立即跟随手指手势,而不是手势完成后。 有什么建议吗?

libgdx中的GestureDetector

我是libgdx的新手。 我有以下问题。 我想为我的游戏进行缩放缩放。 为此,我在GestureDetectorListener中有GestureDetectorListener类。 在GameStage我有以下GestureDetector代码: OrthographicCamera camera = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); this.setCamera(camera); GestureDetector gestureDetector = new GestureDetector(20, 0.5f, 2, 0.15f, new GestureDetectorListener()); Gdx.input.setInputProcessor(gestureDetector); class GestureDetectorListener implements GestureListener { float initialScale = 1; @Override public boolean touchDown(float x, float y, int pointer, int button) { initialScale = camera.zoom; return true; } @Override public boolean tap(float x, […]

OnGestureListener#onScroll未在Samsung Galaxy Note 10.1上从GestureDetector调用

在带有Android 4.0.4的三星Galaxy Note 10.1上,当两个手指放在屏幕上时, GestureDetector不会触发OnGestureListener#onScroll (它只用于一根手指)。 这适用于其他设备。 在我的应用程序中,我想只在涉及至少两个手指时启用滚动。 这是重现现象的视图实现: public class MyView extends View { GestureDetector scrollGestureDetector; public MyView(Context context, AttributeSet attrs) { super(context, attrs); scrollGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { @Override public boolean onScroll(final MotionEvent e1, final MotionEvent e2, final float distanceX, final float distanceY) { System.out.println(“SCROLL ” + distanceX + “, ” […]

如何在Android中向视图添加手势检测器

我正在努力为我的项目中的子视图添加手势检测器。 我是否覆盖父母的onTouchEvent或孩子的onTouchEvent ? 我是否制作OnTouchListener并在那里添加手势检测器? 文档显示了如何向活动本身添加手势检测器的示例,但不清楚如何将其添加到视图中。 如果inheritance视图( 这里是示例),则可以使用相同的过程,但我想添加手势而不进行子类化。 这是我能find的最接近的其他问题,但它特定于ImageView上的ImageView手势,而不是任何View的一般情况。 关于何时返回true或false答案也存在一些分歧。 为了帮助自己了解它是如何工作的,我做了一个独立的项目。 我的答案如下。

将GestureDetector设置为所有子视图

我想将GestureDetector添加到活动的所有视图(视图组),而不是手动将其分配给每个视图。 现在onFling()仅在向后滑动时激活,但在滑动例如button1时不激活。 package com.app.example; import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.util.Log; import android.view.GestureDetector; import android.view.MotionEvent; import android.view.GestureDetector.SimpleOnGestureListener; import android.view.View; import android.view.View.OnTouchListener; import android.widget.Button; import android.widget.LinearLayout; public class ExampleActivity extends Activity { Context mContext = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mContext = this; LinearLayout parent = new LinearLayout(mContext); parent.setOrientation(LinearLayout.VERTICAL); parent.setBackgroundColor(Color.RED); […]

RecyclerView ItemTouchHelper动作拖动结束

当他停止拖放我的RecyclerView时(当他放下所选项目时),我需要听取用户的意见。 我可以通过我的ItemTouchHelper获取此信息吗? 谢谢你的帮助 马克:目前我只是在用户仍然移动项目的时候:) @Override public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder source, RecyclerView.ViewHolder target) { if (source.getItemViewType() != target.getItemViewType()) { return false; } // Notify the adapter of the move mAdapter.onItemMove(source.getAdapterPosition(), target.getAdapterPosition()); return true; }