Articles of ontouchlistener

仅查看注册MotionEvent.ACTION_DOWN

我有一个有趣的问题……我似乎无法find解决方案。 我正在使用ObjectAnimator来旋转ImageView; 但是onTouchListener似乎只注册了MotionEvent.ACTION_DOWN。 (我从Log Cats中推断出这个,​​还有MotionEvent.ACTION_MOVE和MotionEvent.ACTION_UP)。 我想也许这个问题可能与试图同时倾听和制作animation有关。 我在相对布局中包装了imageview和线性布局(设置为MATCH PARENT),并注册了线性布局以监听触摸事件。 线性布局具有相同的问题; 只处理MotionEvent.ACTION_UP。 有什么东西我需要去注册MotionEvent.ACTION_MOVE吗? 这是我的代码: touch_pad = (LinearLayout) findViewById(R.id.layout_touch_capture); touch_pad.setOnTouchListener(this); touch_pad.requestFocus(); public boolean onTouch(View v, MotionEvent event) { switch(v.getId()) { case (R.id.layout_touch_capture): long end = 0; long start = 0; float y = event.getY(); float y_sum = y; float x = event.getX(); switch(event.getAction()) { case (MotionEvent.ACTION_UP): end = […]

Android – on touch listener两次开火

在我的代码中,按钮的ontouch侦听器被触发两次。 请在下面find代码。 我使用的是Google API 2.2。 java文件中的代码…. submit_button = (Button)findViewById(R.id.submit); submit_button .setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View arg0, MotionEvent arg1) { int action=0; if(action == MotionEvent.ACTION_DOWN) { startActivity(new Intent(First_Activity.this, Second_Activity.class)); finish(); } return true; } }); 请帮我解决这个问题。

按下按钮时播放声音 – 机器人

我有这个代码 package com.tct.soundTouch; import android.app.Activity; import android.media.MediaPlayer; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.Button; public class main extends Activity implements OnTouchListener { private MediaPlayer mp; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final Button zero = (Button) this.findViewById(R.id.button); zero.setOnTouchListener(this); mp = MediaPlayer.create(this, R.raw.sound); } @Override public boolean onTouch(View v, MotionEvent event) { […]

android listview里面的cardview onTouch监听器冲突/敏感度

这是一个测试项目,显示问题保管箱链接: https ://www.dropbox.com/sh/8s3v9ydcj6jvpl8/AACZ2VRP2N9R1ec7pxrsAn0ga ? dl =0 这是我在这里回答的问题的延续,但现在我要问的是onTouch的灵敏度/冲突: 带有ListView的Android CardView – CardView上的onTouchListener无法正常工作 我有一个带有listview的cardview。 我将需要列表视图中的滚动和单击项也可以工作,我希望能够使用ontouchlistener移动整个cardview。 我在cardview上设置了一个onTouchListener,但由于listview滚动与cardview移动冲突,因此无法正常工作。 我已经能够在iOS上完成类似的工作,所以在Android上也应该可行。 码: 把它放在build.gradle中: compile ‘com.android.support:cardview-v7:22.0+’ 主要活动: import android.animation.Animator; import android.graphics.PointF; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.CardView; import android.view.MotionEvent; import android.view.View; import android.view.ViewTreeObserver; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.RelativeLayout; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private ListView mylistview; […]

Android多点触控?

作为开发人员,我倾向于先编程,然后再进行研究。 我试图实现一个可以处理多个用户输入的屏幕。 基本上不只是一个手指映射。 我尝试了两件事…… 我有一个实现OnTouchListener的Activity类。 在这里,我有两个独立的子视图,将Activity添加为ontouch侦听器。 然后我有一个打印出来的事件,打印出event.getPointerCount()并打印出每个指针的位置。 将其下载到手机并进行测试。 我注意到指针从未超过两个。 我甚至注意到,如果一个手指放在一个孩子身上,另一个手指放在另一个孩子身上,那么事件只会发生在第一个子组件上。 接下来,我尝试在每个子组件上放置单独的侦听器,以查看它是否有效但操作相同。 因此,似乎android在处理来自触摸屏幕的用户的输入时仅支持总共两个用户输入。 这是真的? 从测试和研究来看,似乎就是这种情况。 有没有人遇到这个限制。 任何聪明的工作? 谢谢你的时间和回应。 DK

拖动时跳转ImageView。 getX()和getY()值正在跳跃

我已经创建了一个用于拖动视图的onTouchListener。 如果我使用getRawX()和getRawY()图像会平滑地拖动。 问题是,当您向下放置第二个指针然后抬起第一个指针时,图像将跳转到第二个指针。 此onTouchListener尝试通过跟踪pointerId来解决该问题。 这个onTouchListener的问题是在拖动ImageView时,ImageView非常疯狂地跳转。 getX()和getY()值跳转。 我觉得我正确地做到了这一点。 我不想为此编写自定义视图,因为我已经实现了scaleGestureDetector并编写了一个可以工作的自定义rotateGestureDetector。 一切正常但我需要解决使用getRawX()和getRawY()时getRawX()的问题。 有谁知道我在这里做错了什么? 这是我的onTouchListener: final View.OnTouchListener onTouchListener = new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { relativeLayoutParams = (RelativeLayout.LayoutParams) v.getLayoutParams(); final int action = event.getAction(); switch (action & MotionEvent.ACTION_MASK) { case MotionEvent.ACTION_DOWN: { final float x = event.getX(); final float y = event.getY(); // Where […]

如何将Touch Listeners传递给自定义视图进行拖放操作?

我有一个关于处理CustomView touch events的问题。我正在动态地将自定义视图添加到布局(即FrameLayout)。 那些具有touchListeners的自定义视图用于在角落处拉点(如下图所示)。 除此之外我必须在屏幕上拖放整个视图,如果用户触摸除了那些角点之外(图像中的颜色区域)必须拖放视图,否则不会,以及如果用户触摸到外面的那个查看我不想触发任何触摸侦听器。 我可以使用此代码来提取这些点 @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: if (topTouchArea.contains(event.getX(), event.getY())) { currentTouch = TOUCH_TOP; } else if (RightTouchArea.contains(event.getX(),event.getY())) { currentTouch = TOUCH_RIGHT; } else if (LeftTouchArea.contains(event.getX(),event.getY())) { currentTouch = TOUCH_LEFT; } else { return false; //Return false if user touches none of the corners } […]

按下animation缩小按钮尺寸,并在发布时重新获得尺寸

我希望创建一个按钮,当按下按钮时会改变尺寸(稍微小一点),然后再次释放按钮后,尺寸应该变回正常尺寸。我使用Scale xml来实现这一目标,但它重新定位了自己如果我不释放按钮。 按钮在这里我指的是imageview。 这是我的源代码: – imgSpin = (ImageView) findViewById(R.id.iv_spins); imgSpin.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: imgSpin.startAnimation(mAnimation); spinslot(); break; case MotionEvent.ACTION_UP: imgSpin.clearAnimation(); imgSpin.setEnabled(false); break; } return true; } }); 我的规模Xml: – 我的XML: – 我尝试使用paramLayout,但是当我在XML中设置权重时,它不会给我animation效果。 我已经使用这种方法: – case MotionEvent.ACTION_DOWN: ViewGroup.LayoutParams params = imgSpin.getLayoutParams(); // Button new width […]

如何在Android CardView上添加滑动function?

我有一个包含两个TextView和两个ImageView的CardView。 我希望能够向左和向右滑动以“解雇”。 我实际上想要向右滑动以发送一个Intent,但这可以在以后完成。 现在,我希望能够通过向左或向右滑动来解除CardView。 我也想要滑动animation。 我尝试使用romannurik’s SwipeDismissTouchListener但CardView没有响应刷卡。 如果有人比romannurik’s定制听众有更好的解决方案,请分享。 这是我的CardView布局: 我如何设置SwipeDismissTouchListener: RelativeLayout rootLayout; CardView restaurantCardView; … public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { rootLayout = (RelativeLayout) inflater.inflate(R.layout.fragment_main, container, false); restaurantCardView = (CardView) rootLayout.findViewById(R.id.restaurantContainer); restaurantCardView.setOnTouchListener(new SwipeDismissTouchListener(restaurantCardView, null, new SwipeDismissTouchListener.DismissCallbacks() { @Override public boolean canDismiss(Object token) { Log.d(“Chris”, “canDismiss() called with: ” + “token = [” […]

MapView中的OnTouch仅在第一次触发

我正在尝试在MapView中实现双击式缩放function。 事件总是第一次发生,但从未发生过。 以下是我的代码。 我有一种感觉,它与地图控制器在第一次触发事件后迷路有关。 import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import com.google.android.maps.MapActivity; import com.google.android.maps.MapController; import com.google.android.maps.MapView; public class mainmap extends MapActivity implements OnTouchListener{ long lasttime = -1; MapController mapc; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); MapView mapView = (MapView) findViewById(R.id.mapview); mapView.setBuiltInZoomControls(true); mapc = mapView.getController(); mapView.setOnTouchListener(this); } @Override protected boolean isRouteDisplayed() { […]