android滑动基础篇 TouchView
效果图:
代码部分:
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>
转载于:https://www.cnblogs.com/anyuan9/p/6171630.html
android滑动基础篇 TouchView相关推荐
- Android日志[基础篇]Android Log日志输出
Android日志[基础篇]二 Android Studio修改LogCat日志的颜色 android.util.Log输出日志的常用方法如下: Log.v(String tag, String ms ...
- Android日志[基础篇]二 Android Studio修改LogCat日志的颜色
上一篇提到Android日志的5个级别的日志输出,在logcat里面设置自己喜欢或习惯的颜色,本文不只讲Android Sudio修改logcat的日志颜色. 代码和效果 代码 private voi ...
- 【Android】基础篇:Android中TextView控件学习
大家好,我是皮皮猫吖. 每文一言: 我不去想是否能够成功,既然选择了远方,便只顾风雨兼程. 本篇文章: 主要是关于TextView控件的学习. 正文如下: 根据TextView控件进行如下相关操作 案 ...
- Android 蓝牙基础篇之 —— A2DP
本篇文章主要介绍 A2DP 基础操作. 介绍 A2DP :Advanced Audio Distribution Profile.高质量音频数据传输的协议,其定义里了传送单声道或立体声等高质量音频(区 ...
- Android Transition——基础篇
今天来说一说Transition,这个我们肯定不陌生,实现共享元素就会用到这个API.Activities之间精美的动画也全靠这个来实现.从Kitkat版本就出现了Sence与Transition(场 ...
- android peopleactivity.java,Android面试基础篇---Activity(上)
** 前言: ** 一.生命周期 1.七个方法: 1.1:onCreate() 在这里创建界面,做一些数据的初始化工作 1.2:onStart() 可见不可交互 1.3:onResume() 可见可交 ...
- Android 蓝牙基础篇之 —— SPP
蓝牙通讯协议有两种: GATT 和 SPP 之前已经介绍了 BLE 是如何进行简单的通讯,现在介绍 SPP 具体的方法. 连接 // 取消所有正在连接/已经连接的线程,然后重新建立连接 public ...
- Android事件分发机制:基础篇:最全面、最易懂
如何提升安卓水平?安卓开发者必须了解的事件分发机制. 最全面.最易懂的形式来讲解Android事件分发机制. 0. 前言 鉴于安卓分发机制较为复杂,故分为多个层次进行讲解,分别为基础篇.实践篇与高级篇 ...
- Android 自动化测试 Espresso篇:简介基础使用
前言 最近在尝试深入学习Android单元测试. 以前笔者对于单元测试的理解很简单,做一个简单的API测试获取Server端数据,或者测试对应简单的工具类和数据处理的逻辑. 经过这近一个月的碎片化学习 ...
最新文章
- windows修改策略后执行命令_Windows 下的提权大合集
- Webserver推送技术
- Scala入门到精通——第十六节 泛型与注解
- ltrim函数_MySQL|trim() 函数用法
- JQuery学习记录——jQuery对象和DOM对象的转换
- 关于用C#编写ActiveX控件2(转)
- MySQL使用内置函数来进行模糊搜索locate()与like的不同
- 网络流 增广路 入门很好的文章
- 基于卷积网络的度量学习
- 测试开发面试-技术题持续累积
- 神秘诡异的量子世界是如何毁掉科学家三观的?
- shopex mysql 数据库服务器_[日记] shopex转移以及MySql简单操作命令
- HDU	 4699 Editor【模拟栈】
- 网站建设:制作一个网站一般要多少钱?
- 【EF】对象名 'dbo.EdmMetadata' 无效。
- 标准正态分布正反函数
- 公司账号服务单点登录到gitlab
- 手机黑屏,但是按开机键有震动,能进系统,usb也能识别fastboot和rec(bl已解)
- 保研论坛app服务器网站,保研通论坛 - 中国最大的保研交流社区
- 分享个梦塔防挂机辅助,快速升级升段刷资源的脚本