Android项目----dispathTouchEvent
说到dispathTouchEvent,就不得不说一个最贱的屏幕触摸动作触发的一些列Touch事件:
ACTION_DOWN->ACTION_MOVE->ACTION_MOVE->ACTION_MOVE...->ACTION_MOVE->ACTION_UP
在Android系统中每个View的额子类都有三个和TouchEvent处理相关的方法
1)public boolean dispatchTouchEvent(MotionEvent ev) 这个方法用来分发TouchEvent
2)public boolean onInterceptTouchEvent(MotionEvent ev) 这个方法用来拦截TouchEvent
3)public boolean onTouchEvent(MotionEvent ev) 这个方法用来处理TouchEvent
如果要控制一个面板在触发屏幕的时候显示,就只需要绑定一个控件去控制就可以了。
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
showRightPanel();
return super.dispatchTouchEvent(ev);
}
/**
* 显示右边面板
*/
public void showRightPanel(){
if (!mShowing) {//如果此时面板没有显示,就让他显示出来
rightPanel.setVisibility(View.VISIBLE);
mShowing = true;
}
Message msg = handler.obtainMessage(contants.FADE_OUT);
handler.removeMessages(contants.FADE_OUT);
handler.sendMessageDelayed(msg,contants.DEFAULTTIMEOUT);
}
/**
* 隐藏右侧面板
*/
public void hideRightPanel(){
if (mShowing) {
handler.removeMessages();
rightPanel.setVisibility(View.GONE);
mShowing = false;
}
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
showRightPanel();
return super.dispatchTouchEvent(ev);
}
/**
* 显示右边面板
*/
public void showRightPanel(){
if (!mShowing) {//如果此时面板没有显示,就让他显示出来
rightPanel.setVisibility(View.VISIBLE);
mShowing = true;
}
Message msg = handler.obtainMessage(contants.FADE_OUT);
handler.removeMessages(contants.FADE_OUT);
handler.sendMessageDelayed(msg,contants.DEFAULTTIMEOUT);
}
/**
* 隐藏右侧面板
*/
public void hideRightPanel(){
if (mShowing) {
handler.removeMessages();
rightPanel.setVisibility(View.GONE);
mShowing = false;
}
}
Handler handler = new Handler(){
public void handleMessage(Message msg) {
switch (msg.what) {
case contants.FADE_OUT:
hideRightPanel();
break;
case contants.SHOW_PROGRESS:
if (mShowing) {
msg = obtainMessage(contants.SHOW_PROGRESS);
sendMessageDelayed(msg,);
}
break;
}
super.handleMessage(msg);
}
};
Android项目----dispathTouchEvent的更多相关文章
- Android——eclipse下运行android项目报错 Conversion to Dalvik format failed with error 1解决
在eclipse中导入android项目,项目正常没有任何错误,但是运行时候会报错,(clean什么的都没用了.....)如图: 百度大神大多说是jdk的问题,解决: 右键项目-Properties如 ...
- eclipse — 导入android项目后识别成java项目的问题及解决
最近在eclipse导入android项目的时候遇到了奇葩问题,再此记录 遇到的问题就是:将完好的android项目导入到eclipse的时候,原本这是一个很容易的事情,但是导入成功后发现,,,靠ec ...
- 用Kotlin创建第一个Android项目(KAD 01)
原文标题:Create your first Android project using Kotlin (KAD 01) 作者:Antonio Leiva 时间:Nov 21, 2016 原文链接:h ...
- Android之什么是Activity和常用的ADB命令以及Android项目结构的认识
总结一下之前学习Android的一些内容 一: Android常用的ADB命令(adb android调试桥) 1.adb devices 查看模拟器设备并重新连接. 2.adb ki ...
- eclipse将android项目生成apk并且给apk签名
转载:http://www.cnblogs.com/tianguook/archive/2012/09/27/2705724.html 生成apk最懒惰的方法是:只要你运行过android项目,到工作 ...
- Android开发学习——Android项目的目录结构
Android项目的目录结构: 资源文件夹: 清单配置文件: Android的四大组件在使用前全部需要在清单文件中配置 <?xml version="1.0" encodin ...
- Android项目实战(二十五):Android studio 混淆+打包+验证是否成功
前言: 单挑Android项目,最近即时通讯用到环信,集成sdk的时候 官方有一句 在 ProGuard 文件中加入以下 keep. -keep class com.hyphenate.** {*;} ...
- Android项目实战(二十四):项目包成jar文件,并且将工程中引用的jar一起打入新的jar文件中
前言: 关于.jar文件: 平时我们Android项目开发中经常会用到第三方的.jar文件. 其实.jar文件就是一个类似.zip文件的压缩包,里面包含了一些源代码,注意的是.jar不包含资源文件(r ...
- 初次尝试用Kotlin实现Android项目
Kotlin: The Swift of Android 起这个文内标题的原因很简单,就是对Kotlin抱有希望--能使Android的开发更简洁.高效及安全.知道Kotlin是从简书的一篇短文,越来 ...
随机推荐
- SQL Server 数据库没有有效全部者的三种解决的方法
问题: 开发的过程中,操作系统出了问题.决定重装系统.可是没有将SQL Server中的数据库文件分离出来,直接将系统格了.在新系统数据库中附加了数据库文件,一切还算正常.但当打开数据库关系图 ...
- (大数据工程师学习路径)第三步 Git Community Book----Git介绍
一.git诞生 同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代.1991年,Linus创建了开源的Linux,并且有着为数众多的参与者.虽然有世界各地的志愿者为Linux编写代码 ...
- asp.net学习之GridView七种字段
原文:asp.net学习之GridView七种字段 asp.net中GridView绑定到数据源时,可以自动显示数据源的各个字段.只要设定其AutoGenerateColumns为TRUE即可.但这, ...
- 解决 configure.ac:17: error: possibly undefined macro: AC_PROG_LIBTOOL
当安装configure.ac:17: error: possibly undefined macro: AC_PROG_LIBTOOL If this token and others are le ...
- 处理器(CPU)调度问题
因为处理器是最重要的计算机资源,提高利用率并提高系统性能的处理器(吞吐量.响应时间).于处理机调度性能的好坏,因而,处理机调度便成为操作系统设计的中心问题之中的一个. 一.处理机调度的层次 1. ...
- Mac在结构quick cocos2d-x编译环境
关于 Quick 很多其它的使用说明可參考安装文件夹下的 README 文件. Quick-Coco2d-x开发工具 普通情况下,我们通常都会採用Cocos Code IDE作为开发工具来高速开发游戏 ...
- 【Espruino】NO.15 nRF24L01+无线收发器
http://blog.csdn.net/qwert1213131/article/details/35853747 本文属于个人理解,能力有限,纰漏在所难免,还望指正! [小鱼有点电] [Espru ...
- TextView随键盘弹出上移高度
很多时候我们都在为键盘遮挡了原本就不大的屏幕时而烦恼,特别是当用户处于编辑状态时,键盘下面的内容就看不见了,用户只能处于盲打状态了.现在有一种简单的解决办法,基本思路就是,添加通知.一直监听键盘事件, ...
- IOS开发中绘制地图线路
地图应用经常会涉及到线路的绘制问题,ios下可以使用MKMapView进行地图开发,使用 MKOverlayView进行线路的绘制. 使用MKMapView添加MKMap.framework 和Cor ...
- 创建GitHub技术博客
创建GitHub技术博客全攻略 githubio技术博客网站生成 说明: 首先,你需要注册一个 github 账号,最好取一个有意义的名字,比如姓名全拼,昵称全拼,如果被占用,可以加上有意义的数字.本 ...