[置顶] android滑动基础篇
16lz
2021-01-23
因为觉得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() {@Overridepublic 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 系统下模拟触点击的功能与权限
- android 获取原生gps坐标
- Android View回顾之坐标系
- Android中的两种坐标系
- Android坐标系
- 根据百度地图API得到坐标和地址并在地图上显示
- Android 教你如何通过 LocationManager 获取得到当前位置坐标
- Android View坐标getLeft, getRight, getTop, getBottom