1、上图,无图无真相
2、Demo基本设计原理
2.1、监听屏幕的触摸事件,将当前事件发生的坐标打印在TextView上;
2.2、判断不同的触摸事件类型,改变TextView的背影色;
2.3、实现本身很简单,对于初学者来讲是一步积累,代码中有相对应注释说明;
3、关键代码
XML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | < ?xml version="1.0" encoding="utf-8"?> <linearlayout 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" android:orientation="vertical" tools:context="com.yusian.even.MainActivity"> <textview android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" android:layout_margin="20dp" android:layout_gravity="center_horizontal"></textview> </linearlayout> |
Activity
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | package com.yusian.even; import android.graphics.Color; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.MotionEvent; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = (TextView)findViewById(R.id.textView); } @Override // 实现Activity的onTouchEvent方法即可监听当前Activity的屏幕事件 // MotionEvent的三个重要方法getAction()和getX()和getY() public boolean onTouchEvent(MotionEvent event) { // 通过getAction()方法,实现在按下与抬起时不同处理 if(event.getAction() == MotionEvent.ACTION_DOWN){ textView.setBackgroundColor(Color.GRAY); } if(event.getAction() == MotionEvent.ACTION_UP){ textView.setBackgroundColor(Color.YELLOW); } // 修改TextView文字,显示当前点击的x、y值 textView.setText("X = "+event.getX()+"; Y = "+event.getY()); return super.onTouchEvent(event); } } |