软件编程
位置:首页>> 软件编程>> Android编程>> Android获取点击屏幕的位置坐标

Android获取点击屏幕的位置坐标

作者:carter_yu  发布时间:2023-12-14 21:18:31 

标签:Android,屏幕,位置坐标

在Android开发过程中,有时需要获取触摸位置的坐标,以便作进一步处理,比如做炫酷的动画效果,或者响应其他操作。

本文简单介绍Android中触屏操作时,触屏的开始位置、当前位置、结束位置。

布局:


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context="com.example.com.TouchTest" >

<LinearLayout
   android:id="@+id/ll_touch"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical" >

<TextView
     android:id="@+id/touch_show_start"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="@string/hello_world" />

<TextView
     android:id="@+id/touch_show"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="@string/hello_world" />
 </LinearLayout>

</RelativeLayout>

Activity中的操作:


public class TouchTest extends Activity implements OnTouchListener {

private TextView tvTouchShowStart;
 private TextView tvTouchShow;
 private LinearLayout llTouch;

@Override
 protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_touch_test);
   init();
 }

private void init() {
   tvTouchShowStart = (TextView) findViewById(R.id.touch_show_start);
   tvTouchShow = (TextView) findViewById(R.id.touch_show);
   llTouch = (LinearLayout) findViewById(R.id.ll_touch);
   llTouch.setOnTouchListener(this);
 }

@Override
 public boolean onTouch(View v, MotionEvent event) {
   switch (event.getAction()) {
   /**
   * 点击的开始位置
   */
   case MotionEvent.ACTION_DOWN:
     tvTouchShowStart.setText("起始位置:(" + event.getX() + "," + event.getY());
     break;
   /**
   * 触屏实时位置
   */
   case MotionEvent.ACTION_MOVE:
     tvTouchShow.setText("实时位置:(" + event.getX() + "," + event.getY());
     break;
   /**
   * 离开屏幕的位置
   */
   case MotionEvent.ACTION_UP:
     tvTouchShow.setText("结束位置:(" + event.getX() + "," + event.getY());
     break;
   default:
     break;
   }
   /**
   * 注意返回值
   * true:view继续响应Touch操作;
   * false:view不再响应Touch操作,故此处若为false,只能显示起始位置,不能显示实时位置和结束位置
   */
   return true;
 }

}

效果图:

Android获取点击屏幕的位置坐标

来源:https://blog.csdn.net/carter_yu/article/details/50499040

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com