Articles of ontouchlistener

Android:将手势事件传递给另一个视图

我继续在Sticky ListView上工作,其中ListView中的指定视图在经过时会粘到顶部和/或底部。 我通过设置一个与列表项相同的视图,并在列表项在屏幕上和屏幕上传递时显示或隐藏它。 我的问题是,当这些“粘性”项目存在时,我希望它们对触摸作出反应,就像它们是listview本身的一部分一样。 例如,向下粘贴顶部粘贴应该发送列表视图向下滚动。 我的问题是,是否可以为此视图分配触摸侦听器,然后将这些事件直接传递给列表。 我希望它会像以下一样简单: ListView list; …. stickyview.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View arg0, MotionEvent motionEvent) { list.onTouchEvent(motionEvent); return false; } });

Android:ImageView getID(); 返回整数

我已经设置了一个onTouch类来确定何时按下了我的40个按钮之一。 我面临的问题是确定按下了哪个按钮。 如果我使用: int ID = iv.getId(); 当我点击“widgetA1”按钮时 我收到以下ID: 2131099684 我希望它返回字符串ID“widgetA1” 来自:game.xml 来自:game.java public boolean onTouch(View v, MotionEvent event) { ImageView iv = (ImageView)v; int ID = iv.getId(); String strID = new Integer(ID).toString(); Log.d(TAG,strID); //…. etc } + – + – + – + – + – + – 我其他明智的工作正常,它知道你按什么按钮。 我是这个Android JAVA的新手。 如果你们能帮助我,请告诉我。

在视图的Ontouch方法中单击触摸检测

我在自定义视图的ontouch方法中需要单点触摸检测。 我尝试在ACTION-DOWN和ACTION-UP中获取x和y值,在ACTION-UP中我给出了一个条件,即如果ACTIONDOWN和ACTION-UP中的X和Y的值相等,则将其作为单击。 我的代码如下 @Override public boolean onTouchEvent(MotionEvent ev) { if (!mSupportsZoom && !mSupportsPan) return false; mScaleDetector.onTouchEvent(ev); final int action = ev.getAction(); switch (action & MotionEvent.ACTION_MASK) { case MotionEvent.ACTION_DOWN: { final float x = ev.getX(); final float y = ev.getY(); mLastTouchX = x; //here i get x and y values in action down mLastTouchY = y; […]

OnTouch可以工作,但是OnClickListener没有?

我创建了一个小部件/控件,我可以重用我通过扩展RelativeLayout创建的。 然后,在我的一个活动中,我在循环中创建了一堆这些小部件。 但是,当我想让每个小部件响应一次点击时,我遇到了一个问题。 我发现设置OnTouchListener有效: this.setOnTouchListener(new OnTouchListener(){ public boolean onTouch(View arg0, MotionEvent arg1) { //Triggers debug message } }); 但是OnClickListener没有: this.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { //Doesn’t trigger debug message } }); 为什么是这样?

如何在同一列表视图中实现ontouch和onfling?

我有一个listview并实现onclick和onfling.problem是当我做fling(从左向右滑动),listview的onclick事件也正在执行。如何解决这个问题? 如何区分listview中的触摸(点击)和投掷(滑动)? listClickListener = new OnItemClickListener() { public void onItemClick(AdapterView parent, View v,int position, long id) { //Job of Onclick Listener } }; mContactList.setOnItemClickListener(listClickListener); mContactList.setAdapter(adapter); // Gesture detection gestureDetector = new GestureDetector(new MyGestureDetector(prosNos)); gestureListener = new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { if (gestureDetector.onTouchEvent(event)) { return true; } return false; } }; […]

从其他视图拖动时检测视图上的触摸事件

如果用户触摸视图A并在视图B上拖动到底部,如何检测触摸事件。我想在视图B中检测触摸事件。 我在视图B中添加了触摸侦听器,但如果用户最初触摸A并拖过B,则不会接收事件。

Android上的“按住”按钮需要使用onTouchListener更改状态(自定义XML选择器)

我有一个按钮图形需要“按住”function,所以我没有使用onClickListener,而是使用onTouchListener,以便应用程序可以对 MotionEvent.ACTION_DOWN, 和 MotionEvent.ACTION_UP 根据触发这两个事件的速度,我可以在两者之间的时间内运行“pressAndHoldHandler”。 无论如何,长话短说:我在同一个应用程序中有许多“基本”按钮,不需要按住function,所以他们使用的是onClickListener。 这些按钮中的每一个都已使用自己的XML选择器文件以图形方式自定义: 所以,这里的问题是:使用onTouchListener无法访问上面的选择器。 只有onClickListener将使用自己的方法的onClick()部分拉入状态更改,因此这些“按住”按钮永远不会更改状态。 对用户来说非常可怕的反馈。 我正在通过执行以下操作在ACTION_DOWN和ACTION_UP的开关案例中强制执行上述操作: if (action == MotionEvent.ACTION_DOWN) { btn_chicken.setBackgroundResource(R.drawable.btn_chicken_s3); } else if (action == MotionEvent.ACTION_UP) { btn_chicken.setBackgroundResource(R.drawable.btn_chicken_off); } 但它似乎是一个黑客,它错过了“专注但没有压力”的阶段。 之前有人绊过这个吗?

RecyclerView中的滑动和OnClick事件

我正在尝试实现一个轻扫以解除RecyclerView中的操作,但是当我在ViewHolder中的任何View上设置OnClickListener时,它会覆盖该视图上的所有OnTouch事件。 我可以放弃OnClickListener并处理TouchListener中的所有点击,但如果我在RecycleView的子视图中有多个按钮,那将是很多代码,这看起来不是正确的方法。 在我的RecyleView中我设置了Swipe以解除侦听器( 类似于此 ): setOnTouchListener(touchListener); setOnScrollListener(touchListener.makeScrollListener()); 它在ListView中工作,但在RecycleView中,OnClickListener阻止OnTouchListner事件。 ViewHolder视图的布局示例。 在RecyclerView.Adapter中充气: @Override public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { View v = mInflater.inflate(R.layout.push_card_view_compat, viewGroup, false); return new ViewHolder(v, onClickListener, onKeepListener); } ViewHolder: public ViewHolder(final View itemView, final OnViewHolderClickListener onClickListener, final OnKeepListener onKeepListener) { super(itemView); keepButton = (ImageView) itemView.findViewById(R.id.keep_icon); itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) […]

在刷卡时结束活动吧?

当用户在屏幕的任何位置提供正确的滑动时,我必须完成Activity 。 我已经尝试过使用GestureDetector ,如果活动中既没有ScrollView也没有RescyclerView ,并且RescyclerView也不允许检测滑动它们,那么它可以正常工作。 所以我尝试了一种不同的方式,通过以编程方式将视图叠加到所有它们的顶部的布局中,然后尝试检测它上面的滑动事件。 private void swipeOverToExit(ViewGroup rootView) { OverlayLayout child = new OverlayLayout(this); ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); child.setLayoutParams(layoutParams); rootView.addView(child); } OverlayLayout public class OverlayLayout extends RelativeLayout { private float x1, x2; private final int MIN_DISTANCE = 150; public OverlayLayout(Context context) { super(context); } public OverlayLayout(Context context, AttributeSet attrs) { super(context, […]

canvas中的图像与触摸事件

看起来很简单,但我在实施方面遇到了问题。 我想要一个包含onTouch事件的屏幕上带有图像的canvas。 我尝试过ImageView但我无法使用canvas。 我已经尝试过SurfaceView并且能够在屏幕上显示canvas,但是运动onTouch事件(缩放,平移)时出现问题。 我需要canvas,因为我将在我的代码中渲染图像。 有人可以告诉我这样做的正确方法吗?