效果图:

代码部分:

activity类代码:

  1. package com.TouchView;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.view.MotionEvent;
  5. import android.view.View;
  6. import android.widget.TextView;
  7. public class TouchView extends Activity {
  8. private TextView eventlable;
  9. private TextView histroy;
  10. private TextView TouchView;
  11. @Override
  12. public void onCreate(Bundle savedInstanceState) {
  13. super.onCreate(savedInstanceState);
  14. setContentView(R.layout.main);
  15. TouchView =(TextView)findViewById(R.id.touch_area);
  16. histroy =(TextView)findViewById(R.id.history_label);
  17. eventlable =(TextView)findViewById(R.id.event_label);
  18. TouchView.setOnTouchListener(new View.OnTouchListener() {
  19. @Override
  20. public boolean onTouch(View v, MotionEvent event) {
  21. int action =event.getAction();
  22. switch(action){
  23. //当按下的时候
  24. case (MotionEvent.ACTION_DOWN):
  25. Display("ACTION_DOWN",event);
  26. break;
  27. //当按上的时候
  28. case(MotionEvent.ACTION_UP):
  29. int historysize=ProcessHistory(event);
  30. histroy.setText("历史数据"+historysize);
  31. Display("ACTION_UP",event);
  32. break;
  33. //当触摸的时候
  34. case(MotionEvent.ACTION_MOVE):
  35. Display("ACTION_MOVE",event);
  36. }
  37. return true;
  38. }
  39. });
  40. }
  41. public void Display(String eventType,MotionEvent event){
  42. //触点相对坐标的信息
  43. int x =(int) event.getX();
  44. int y=(int)event.getY();
  45. //表示触屏压力大小
  46. float pressure =event.getPressure();
  47. //表示触点尺寸
  48. float size=event.getSize();
  49. //获取绝对坐标信息
  50. int RawX=(int)event.getRawX();
  51. int RawY=(int)event.getRawY();
  52. String msg="";
  53. msg+="事件类型"+eventType+"\n";
  54. msg+="相对坐标"+String.valueOf(x)+","+String.valueOf(y)+"\n";
  55. msg+="绝对坐标"+String.valueOf(RawX)+","+String.valueOf(RawY)+"\n";
  56. msg+="触点压力"+String.valueOf(pressure)+",";
  57. msg+="触点尺寸"+String.valueOf(size)+"\n";
  58. eventlable.setText(msg);
  59. }
  60. public int ProcessHistory(MotionEvent event){
  61. int history =event.getHistorySize();
  62. for(int i=0;i<history;i++){
  63. long time=event.getHistoricalEventTime(i);
  64. float pressure=event.getHistoricalPressure(i);
  65. float x=event.getHistoricalX(i) ;
  66. float y=event.getHistoricalY(i);
  67. float size=event.getHistoricalSize(i);
  68. }
  69. return history;
  70. }
  71. }

MAIN.XML代码部分:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. >
  7. <TextView
  8. android:id="@+id/touch_area"
  9. android:layout_width="fill_parent"
  10. android:layout_height="300dip"
  11. android:background="#0FF"
  12. android:textColor="#FFFFFF"
  13. android:text="触摸事件测试区"
  14. />
  15. <TextView
  16. android:id="@+id/history_label"
  17. android:layout_width="fill_parent"
  18. android:layout_height="wrap_content"
  19. android:text="历史数据"
  20. />
  21. <TextView
  22. android:id="@+id/event_label"
  23. android:layout_width="fill_parent"
  24. android:layout_height="wrap_content"
  25. android:text="触摸事件:"
  26. />
  27. </LinearLayout>

转载于:https://www.cnblogs.com/anyuan9/p/6171630.html

android滑动基础篇 TouchView相关推荐

  1. Android日志[基础篇]Android Log日志输出

    Android日志[基础篇]二 Android Studio修改LogCat日志的颜色 android.util.Log输出日志的常用方法如下: Log.v(String tag, String ms ...

  2. Android日志[基础篇]二 Android Studio修改LogCat日志的颜色

    上一篇提到Android日志的5个级别的日志输出,在logcat里面设置自己喜欢或习惯的颜色,本文不只讲Android Sudio修改logcat的日志颜色. 代码和效果 代码 private voi ...

  3. 【Android】基础篇:Android中TextView控件学习

    大家好,我是皮皮猫吖. 每文一言: 我不去想是否能够成功,既然选择了远方,便只顾风雨兼程. 本篇文章: 主要是关于TextView控件的学习. 正文如下: 根据TextView控件进行如下相关操作 案 ...

  4. Android 蓝牙基础篇之 —— A2DP

    本篇文章主要介绍 A2DP 基础操作. 介绍 A2DP :Advanced Audio Distribution Profile.高质量音频数据传输的协议,其定义里了传送单声道或立体声等高质量音频(区 ...

  5. Android Transition——基础篇

    今天来说一说Transition,这个我们肯定不陌生,实现共享元素就会用到这个API.Activities之间精美的动画也全靠这个来实现.从Kitkat版本就出现了Sence与Transition(场 ...

  6. android peopleactivity.java,Android面试基础篇---Activity(上)

    ** 前言: ** 一.生命周期 1.七个方法: 1.1:onCreate() 在这里创建界面,做一些数据的初始化工作 1.2:onStart() 可见不可交互 1.3:onResume() 可见可交 ...

  7. Android 蓝牙基础篇之 —— SPP

    蓝牙通讯协议有两种: GATT 和 SPP 之前已经介绍了 BLE 是如何进行简单的通讯,现在介绍 SPP 具体的方法. 连接 // 取消所有正在连接/已经连接的线程,然后重新建立连接 public ...

  8. Android事件分发机制:基础篇:最全面、最易懂

    如何提升安卓水平?安卓开发者必须了解的事件分发机制. 最全面.最易懂的形式来讲解Android事件分发机制. 0. 前言 鉴于安卓分发机制较为复杂,故分为多个层次进行讲解,分别为基础篇.实践篇与高级篇 ...

  9. Android 自动化测试 Espresso篇:简介基础使用

    前言 最近在尝试深入学习Android单元测试. 以前笔者对于单元测试的理解很简单,做一个简单的API测试获取Server端数据,或者测试对应简单的工具类和数据处理的逻辑. 经过这近一个月的碎片化学习 ...

最新文章

  1. windows修改策略后执行命令_Windows 下的提权大合集
  2. Webserver推送技术
  3. Scala入门到精通——第十六节 泛型与注解
  4. ltrim函数_MySQL|trim() 函数用法
  5. JQuery学习记录——jQuery对象和DOM对象的转换
  6. 关于用C#编写ActiveX控件2(转)
  7. MySQL使用内置函数来进行模糊搜索locate()与like的不同
  8. 网络流 增广路 入门很好的文章
  9. 基于卷积网络的度量学习
  10. 测试开发面试-技术题持续累积
  11. 神秘诡异的量子世界是如何毁掉科学家三观的?
  12. shopex mysql 数据库服务器_[日记] shopex转移以及MySql简单操作命令
  13. HDU 4699 Editor【模拟栈】
  14. 网站建设:制作一个网站一般要多少钱?
  15. 【EF】对象名 'dbo.EdmMetadata' 无效。
  16. 标准正态分布正反函数
  17. 公司账号服务单点登录到gitlab
  18. 手机黑屏,但是按开机键有震动,能进系统,usb也能识别fastboot和rec(bl已解)
  19. 保研论坛app服务器网站,保研通论坛 - 中国最大的保研交流社区
  20. 分享个梦塔防挂机辅助,快速升级升段刷资源的脚本

热门文章

  1. 修改Visual Studio中“添加新项”时默认添加的命名空间
  2. Sqlserver:timestamp数据类型
  3. apply()、call()与bind()的用法与区别
  4. 如何有效练肩部肌肉增加肩宽并且避免斜方肌发达呢?
  5. 支付宝芝麻分多少算正常?分高有什么好处?
  6. 一万块是存入支付宝里的余额宝好还是存在微信的零钱通里好?
  7. 疏通马桶的工具有哪些 疏通马桶的技巧
  8. 为什么把钱花在别人身上更幸福?
  9. 黑客是否可以攻击被拔掉网线的电脑?
  10. 在实际工作中,WPS对比office,谁更强?