文档章节

按键处理和手势处理

 梦想家Peng
发布于 2016/03/04 09:34
字数 252
阅读 2
收藏 0
点赞 1
评论 0

Event:事件,任何按键或手势操作,都是事件,当事件出现时,都可以进行处理。
onKeyDown()或相关其它方法

  • 连按2下退出程序

    private long lastKeyDownTimeMillis;

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(keyCode == KeyEvent.KEYCODE_BACK) {
            // 判断与前一次记录的时间间隔
            if(System.currentTimeMillis() - lastKeyDownTimeMillis <= 1000) {
                finish();
            } else {
                lastKeyDownTimeMillis = System.currentTimeMillis();
                Toast.makeText(this, "再按一次退出程序!", Toast.LENGTH_LONG).show();
            }
        }
        return true;
    }
  • 退出时弹出对话框

    private long lastKeyDownTimeMillis;

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(keyCode == KeyEvent.KEYCODE_BACK) {
//            AlertDialog.Builder builder = new AlertDialog.Builder(this);
//            builder.setTitle("退出应用程序")
//                .setMessage("确定退出应用程序吗?")
//                .setPositiveButton("确定", new DialogInterface.OnClickListener() {
//                    @Override
//                    public void onClick(DialogInterface dialog, int which) {
//                        finish();
//                    }
//                })
//                .setNegativeButton("取消", null)
//                .setCancelable(false)
//                .create()
//                .show();
            
            // 判断与前一次记录的时间间隔
            if(System.currentTimeMillis() - lastKeyDownTimeMillis <= 1000) {
                finish();
            } else {
                lastKeyDownTimeMillis = System.currentTimeMillis();
                Toast.makeText(this, "再按一次退出程序!", Toast.LENGTH_LONG).show();
            }
        }
        return true;
    }
  • 常见的手势操作

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            Log.d("tag", "ACTION_DOWN:x->" + event.getX() + ", y->" + event.getY());
            break;

        case MotionEvent.ACTION_UP:
            Log.i("tag", "ACTION_UP:x->" + event.getX() + ", y->" + event.getY());
            break;
            
        case MotionEvent.ACTION_MOVE:
            Log.w("tag", "ACTION_MOVE:x->" + event.getX() + ", y->" + event.getY());
            break;
        }
        return super.onTouchEvent(event);
    }


© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 33
码字总数 15605
作品 0
深圳
android基础知识03——事件处理01:主要事件及其处理方式

这一期主要集中学习了android的事件处理相关内容。主要参考内容为: Android 事件处理 Android核心技术与实例详解—事件处理 android的窗口机制分析------事件处理 (该文属于android源码分析...

迷途d书童 ⋅ 2012/03/23 ⋅ 0

【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!

李华明Himi 原创,转载务必在明显处注明: 转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/android-game/337.html 很多童鞋说我的代码运行后,点击home或者back后会程序异常,...

迷途d书童 ⋅ 2012/03/19 ⋅ 0

android开发_MotionEvent与其他事件处理_手势_键盘_鼠标

MotionEvent对象 当用户触摸屏幕时将创建一个MotionEvent对象。MotionEvent包含关于发生触摸的位置和时间等细节信息。MotionEvent对象被传递到程序中合适的方法比如View对象的onTouchEvent(...

zhangty0223 ⋅ 2013/07/19 ⋅ 0

按键手势编辑方式 upstream

版权协议 [按键手势 upstream][3] 由 喻恒春 创作,采用[知识共享 署名 3.0 未本地化版本 许可协议][2] 进行许可。![知识共享许可协议][1] 名词 “按住”是按下键不抬起 “按下”是按下键并抬...

喻恒春 ⋅ 2013/06/10 ⋅ 0

Android学习笔记之百度地图基础知识

<1>GeoPoint 表示一个地理坐标点,存放经度和纬度,以微度的整数形式存储。 方法介绍: public int getLatitudeE6() 返回GeoPoint的纬度,单位微度 public int getLongitudeE6() 返回GeoPoin...

迷途d书童 ⋅ 2012/03/05 ⋅ 3

iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控

-- iOS事件全面解析 概览 iPhone的成功很大一部分得益于它多点触摸的强大功能,乔布斯让人们认识到手机其实是可以不用按键和手写笔直接操作的,这不愧为一项伟大的设计。今天我们就针对iOS的...

jianxin160 ⋅ 2015/08/18 ⋅ 0

外媒称 Android 7.0 当中加入了指纹手势

近日有外媒传出消息称今年的Nexus手机将会搭载Android7.0系统,而系统中还新增加指纹手势功能,同时谷歌将对以前的虚拟按键进行了重绘。根据外媒给出的消息,今年的谷歌两款Nexus系列手机将会...

oschina ⋅ 2016/08/04 ⋅ 13

Android P 导航栏变为两颗虚拟键,或支持原生手势操作

从目前的趋势来看,手机继续弱化按键将成为主流,技术支撑包括全面屏、屏下指纹,以后今后的屏下摄像头、传感器甚至是听筒等。 没有了按键,交互完全依赖屏幕,所以在iPhone X的iOS 11系统上...

局长 ⋅ 04/15 ⋅ 0

FireGestures

FireGestures 是一个 Firefox 扩展,它可以让您通过五个类型的鼠标手势来执行各种各样的命令: 鼠标手势 (按住右键不放移动鼠标); 滚轮手势 (按住右键不放滚动滚轮); 摇杆手势 (按住右键不放...

匿名 ⋅ 2008/09/19 ⋅ 0

JavaScript权威指南笔记

重要的CSS样式属性 position 指定元素的定位类型 top、left 指定元素上、左边缘的位置 bottom、right 指定元素下、右边缘的位置 width、height 指定元素的尺寸 z-index 指定元素相对于其他重...

drei ⋅ 2016/12/16 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

一起读书《深入浅出nodejs》-node模块机制

node 模块机制 前言 说到node,就不免得提到JavaScript。JavaScript自诞生以来,经历了工具类库、组件库、前端框架、前端应用的变迁。通过无数开发人员的努力,JavaScript不断被类聚和抽象,...

小草先森 ⋅ 昨天 ⋅ 0

Java桌球小游戏

其实算不上一个游戏,就是两张图片,不停的重画,改变ball图片的位置。一个左右直线碰撞的,一个有角度碰撞的。 左右直线碰撞 package com.bjsxt.test;import javax.swing.*;import j...

森林之下 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部