因为觉得android用到滑动的地方比较多,所以在写一篇基础的里字..
效果图:

代码部分:
activity类代码:
package com.TouchView;
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
public class TouchView extends Activity {
private TextView eventlable;
private TextView histroy;
private TextView TouchView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TouchView =(TextView)findViewById(R.id.touch_area);
histroy =(TextView)findViewById(R.id.history_label);
eventlable =(TextView)findViewById(R.id.event_label);
TouchView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action =event.getAction();
switch(action){
//当按下的时候
case (MotionEvent.ACTION_DOWN):
Display("ACTION_DOWN",event);
break;
//当按上的时候
case(MotionEvent.ACTION_UP):
int historysize=ProcessHistory(event);
histroy.setText("历史数据"+historysize);
Display("ACTION_UP",event);
break;
//当触摸的时候
case(MotionEvent.ACTION_MOVE):
Display("ACTION_MOVE",event);
}
return true;
}
});
}
public void Display(String eventType,MotionEvent event){
//触点相对坐标的信息
int x =(int) event.getX();
int y=(int)event.getY();
//表示触屏压力大小
float pressure =event.getPressure();
//表示触点尺寸
float size=event.getSize();
//获取绝对坐标信息
int RawX=(int)event.getRawX();
int RawY=(int)event.getRawY();
String msg="";
msg+="事件类型"+eventType+"\n";
msg+="相对坐标"+String.valueOf(x)+","+String.valueOf(y)+"\n";
msg+="绝对坐标"+String.valueOf(RawX)+","+String.valueOf(RawY)+"\n";
msg+="触点压力"+String.valueOf(pressure)+",";
msg+="触点尺寸"+String.valueOf(size)+"\n";
eventlable.setText(msg);
}
public int ProcessHistory(MotionEvent event){
int history =event.getHistorySize();
for(int i=0;i<history;i++){
long time=event.getHistoricalEventTime(i);
float pressure=event.getHistoricalPressure(i);
float x=event.getHistoricalX(i) ;
float y=event.getHistoricalY(i);
float size=event.getHistoricalSize(i);
}
return history;
}
}
MAIN.XML代码部分:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/touch_area"
android:layout_width="fill_parent"
android:layout_height="300dip"
android:background="#0FF"
android:textColor="#FFFFFF"
android:text="触摸事件测试区"
/>
<TextView
android:id="@+id/history_label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="历史数据"
/>
<TextView
android:id="@+id/event_label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="触摸事件:"
/>
</LinearLayout>
本文详细介绍了一个简单的Android应用程序如何处理触摸事件。通过一个示例程序,文章展示了如何使用MotionEvent类来捕捉并处理ACTION_DOWN、ACTION_MOVE及ACTION_UP等触摸事件,并解析了触点的相对坐标、绝对坐标、触点压力及尺寸等信息。

被折叠的 条评论
为什么被折叠?



