因为觉得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>