Articles of ontouchlistener

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):Touch:{x:69.78699} {y:107.774216} 04-29 03:16:11.103:V / myApp(24188):Touch:{x:77.86926} {y:173.37648} 04-29 03:16:11.158:V / myApp(24188):Touch:{x:69.78699} {y:108.781845} 04-29 03:16:11.205:V / myApp(24188):Touch:{x:77.86926} {y:174.38597} 04-29 03:16:11.463:V / myApp(24188):Touch:{x:69.78699} {y:109.64778} 04-29 03:16:11.502:V / myApp(24188):Touch:{x:77.86926} {y:175.62172} […]

绑定视图在RelativeLayout中拖动

我在RelativeLayout里创build了一个可拖动的视图 。 但它似乎超越了RelativeLayout。 我只是想在ViewGroup里面做一个可拖动的View 这个视图可以根据屏幕draggable 。 它可以在RelativeLayout的边界之外拖动。 我怎么能限制它在RelativeLayout中保持可拖动。 CustomImageButton public class ImageButtonCustom extends ImageButton implements View.OnTouchListener{ float dX, dY; private RelativeLayout rootView; private ImageButtonCustom imageButtonCustom; private OnMoveListener onMoveListener; public ImageButtonCustom(Context context,RelativeLayout rootView){ super(context); this.rootView = rootView; init(); } public ImageButtonCustom(Context context) { super(context); init(); } public ImageButtonCustom(Context context, AttributeSet attrs) { super(context, attrs); init(); } […]

实现View.IOnTouchListener接口

在Xamarin中,我编写了一个实现View.IOnTouchListener接口的类。 这是我的代码: public class OnTouchListener : View.IOnTouchListener { public bool OnTouch (View v, MotionEvent e) { return true; } void IDisposable.Dispose () { throw new NotImplementedException (); } IntPtr Android.Runtime.IJavaObject.Handle { get { throw new NotImplementedException (); } } } 我需要什么值的IDisposable.Dispose和Android.Runtime.IJavaObject.Handle代码项,而不是throw new NotImplementedException ()代码? 提前致谢

如何在Android中使用OnTouchListener捕获双击事件

我正在尝试使用OnTouchListener来捕获双击事件。 我想我会为motionEvent.ACTION_DOWN设置一个很长的时间,为第二个motionEvent.ACTION_DOWN设置一个不同的长度,然后测量两个人之间的时间,然后用它做一些事情。 但是,我很难搞清楚如何处理这个问题。 我正在使用开关盒来拾取多点触摸事件,所以我宁愿不尝试和重新制作这一切来实现GestureDetector(不幸的是,不可能同时实现ontouchlistener和Gesturedetector)。 任何想法都会大大帮助: i.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { ImageView i = (ImageView) v; switch (event.getAction() & MotionEvent.ACTION_MASK) { case MotionEvent.ACTION_DOWN: long firstTouch = System.currentTimeMillis(); ///how to grab the second action_down???? break;

Android的:如何确定在TextView触摸事件的位置的字符索引?

我有一个OnTouchListener的TextView 。 我想要的是当我得到MotionEvent时用户指向的字符索引。 有没有办法得到TextView的基础字体指标?

将Android NestedScrollView水平滑动传递给父视图

我试图做一个左右滑动卡系统(如Tinder),卡上有一个NestedScrollView。 目标是,如果用户只是上下滑动,NestedScrollView将滚动,但如果用户向左或向右滑动,则卡将使用该滑动。 <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card_view="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="4dp" card_view:cardUseCompatPadding="true"> <android.support.v4.widget.NestedScrollView android:id="@+id/nested_scroll_view" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="4dp"> <TextView android:id="@+id/text_view" android:layout_width="match_parent" android:layout_height="wrap_content" /> <android.support.v7.widget.RecyclerView android:id="@+id/recycler" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> </android.support.v4.widget.NestedScrollView> </android.support.v7.widget.CardView> (我使用的卡片库是https://github.com/wenchaojiang/AndroidSwipeableCardStack ) compile 'com.github.wenchaojiang:AndroidSwipeableCardStack:0.1.5' 当我在NestedScrollView上放一个margin_top并在这个空白区域内触摸时,CardStack可以正确地抓住我的input,并且卡片向左或向右移动,但是如果我在其他地方触摸并拖动,NestedScrollView会抓住我的input而不pipe方向如何。 我应该扩展/覆盖哪个类/ onTouchEvent来获得这种效果,或者可能会有一个更简单的方法? 谢谢!

在android中拖放图像

我正在一个单词争夺游戏,允许用户将图像移动到图像..如果图像不匹配,那么它应该回到原来的位置,从拖动的地方。我写了一个示例代码,以移动图像,但这里的问题是,如果我移动一个图像的邻居图像也开始移动..这里是示例代码。 /** Touchmoveimage.java*/ package com.examples.Touchmoveimage; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.ImageView; import android.widget.LinearLayout.LayoutParams; public class Touchmoveimage extends Activity implements OnTouchListener{ int windowwidth; int windowheight; private LayoutParams layoutParams ; private LayoutParams layoutParams1 ; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); windowwidth = getWindowManager().getDefaultDisplay().getWidth(); windowheight = getWindowManager().getDefaultDisplay().getHeight(); ImageView […]

按下button时如何重复执行某些操作?

我正在使用特定的中间件(不重要)在Android上开发电视远程模拟器应用程序。 在音量button(音量+和音量 – )的情况下,我想要做的是发送“音量提高”信号,而其button被按下。 这就是我最后尝试的(代码中的一个button,其他必须是除了名称相同): 声明了一个布尔variables boolean pressedUp = false; 用下面的AsyncTask声明一个内部类: class SendVolumeUpTask extends AsyncTask<Void, Void, Void> { @Override protected Void doInBackground(Void… arg0) { while(pressedUp) { SendVolumeUpSignal(); } return null; } } 将侦听器添加到button: 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: […]

Android WindowManager TYPE_SYSTEM_ALERT布局触摸

我的应用程序在某些时候显示一个button作为TYPE_SYSTEM_ALERT用户,我试图让用户移动它。 触摸和移动动作确实注册到下面的代码,但button不移动。 我错过了什么? //create button mbtRec = new Button(ACR.getContext()); mbtRec.setText(R.string.start_recording); mbtRec.setTypeface(null, Typeface.BOLD); mbtRec.setBackgroundColor(Color.RED); //mbtRec.setBackgroundResource(R.drawable.ic_launcher); mbtRec.setOnClickListener(recButtonOnClickListener); mbtRec.setOnTouchListener(recButtonOnTouchListener); //create layout params recButtonLayoutParams = new WindowManager.LayoutParams(); recButtonLayoutParams.flags = WindowManager.LayoutParams.FORMAT_CHANGED; //8 recButtonLayoutParams.format = PixelFormat.RGBA_8888; //PixelFormat.TRANSLUCENT recButtonLayoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT; recButtonLayoutParams.gravity = Gravity.TOP | Gravity.CENTER; //51 recButtonLayoutParams.width = WindowManager.LayoutParams.FILL_PARENT; recButtonLayoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT; paramWindowManager.addView(this.mbtRec, recButtonLayoutParams); OnTouchListener recButtonOnTouchListener = new View.OnTouchListener() { @TargetApi(Build.VERSION_CODES.FROYO) […]

如何在TextView中的每个单词上使用onTouchListeners?

我想将onTouchListeners分配给TextView中的每个单词。 (不要链接到互联网上的东西,而只是继续在应用程序内的游戏逻辑)。 我的游戏在这一点上的一般行为是看到一个TextView,触摸一个单词,如果它是你赢的目标词,否则加载另一个TextView基于你触摸和重复的单词。 我现在完成的方式是使用ClickableSpans和onClicks来表示每个单词。 但我宁愿使用onTouchListeners,这样我就可以在touch_down上更改单词背景的颜色,并在touch_up上执行游戏逻辑,使其看起来更具响应性。 我怎样才能做到这一点? final TextView defTV = (TextView) findViewById(R.id.defTV); text = new SpannableString(rv); // rv is the future clickable TextView text ClickableSpan clickableSpan = null; String regex = "\\w+"; Pattern p = Pattern.compile(regex); Matcher matcher = p.matcher(text); while (matcher.find()) { final int begin = matcher.start(); final int end = matcher.end(); clickableSpan = […]