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;
  }

}
효과 그림:

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기