Android 手势

安卓学习(二) 手势识别 安卓学习(二) 手势识别摘要: 用户与手机交互的方式与PC不一样,没有鼠标,键盘,主要是依靠手势,因此手势的学习对于android开发很必要。本文主要介绍关于android手势识别的内容,首先是系统内置的手势识别,然后是自定义的手势识别,通过该文的学习会对android识别各种手势有一个很好的理解。关键字 手势识别,内置手势,自定义手势 安卓学习二 手势识别 内置手势识别 自定义手势识别 识别pinch 阅读详情

今天,我们要讲的是Android里的手势,为了方便理解,我们做了一个dome

用左滑右滑的手势实现的图片的切换

效果如下:




废话不多说,我们直接上代码

package com.example.myas_020;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.widget.ImageView;
import android.widget.Toast;
import android.widget.ViewFlipper;

public class MainActivity extends AppCompatActivity {

    private ViewFlipper vf_main_image;
    private int images[]={R.drawable.s1,R.drawable.s2,R.drawable.s3};
    private GestureDetector gd;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        vf_main_image = (ViewFlipper) findViewById(R.id.vf_main_image);
        for (int i = 0; i <images.length ; i++) {
            ImageView iv=new ImageView(this);
            iv.setImageResource(images[i]);
            vf_main_image.addView(iv);
        }

        //实例化手势检测器类
         gd = new GestureDetector(this, new GestureDetector.OnGestureListener() {
            //按下
             @Override
            public boolean onDown(MotionEvent e) {
                return false;
            }

             //按下,但是还未抬起
            @Override
            public void onShowPress(MotionEvent e) {

            }
             //轻按,按一下,立刻抬起
            @Override
            public boolean onSingleTapUp(MotionEvent e) {
                return false;
            }
             //滚动
            @Override
            public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
                return false;
            }
             //长按
            @Override
            public void onLongPress(MotionEvent e) {

            }
             //拖动
            @Override
            public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
                if(e2.getX()-e1.getX()>200){
                    Toast.makeText(MainActivity.this, "右滑,上一张", Toast.LENGTH_SHORT).show();
                    vf_main_image.showPrevious();
                    //左进右出
                    vf_main_image.setInAnimation(MainActivity.this,R.anim.left_in);
                    vf_main_image.setOutAnimation(MainActivity.this,R.anim.right_out);
                }if(e1.getX()-e2.getX()>200){
                    Toast.makeText(MainActivity.this, "左滑,下一张", Toast.LENGTH_SHORT).show();
                    vf_main_image.showNext();
                    //左出右进
                    vf_main_image.setInAnimation(MainActivity.this,R.anim.right_in);
                    vf_main_image.setOutAnimation(MainActivity.this,R.anim.left_out);
                }
                return false;
            }
        });
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        return gd.onTouchEvent(event);
    }
}

还有四个动画的代码:

左滑进

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true"
    android:duration="1500"
    >
    <translate
        android:fromXDelta="-100%p"
        android:toXDelta="0"
        ></translate>

    <rotate
        android:fromDegrees="0"
        android:toDegrees="360"
        android:pivotX="100%"
        android:pivotY="50%"
        ></rotate>

</set>


左滑出

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true"
    android:duration="1500"
    >
    <translate
        android:fromXDelta="0"
        android:toXDelta="100%p"
        ></translate>

    <rotate
        android:fromDegrees="0"
        android:toDegrees="360"
        android:pivotX="0"
        android:pivotY="50%"
        ></rotate>

</set>


右滑进 

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true"
    android:duration="1500"
    >
    <translate
        android:fromXDelta="100%p"
        android:toXDelta="0"
        ></translate>
    <rotate
        android:fromDegrees="0"
        android:toDegrees="360"
        android:pivotX="100%"
        android:pivotY="50%"
        ></rotate>
</set>


右滑出


<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true"
    android:duration="1500"
    >
    <translate
        android:fromXDelta="0"
        android:toXDelta="-100%p"
        ></translate>
    <rotate
        android:fromDegrees="0"
        android:toDegrees="360"
        android:pivotX="0"
        android:pivotY="50%"
        ></rotate>
</set>



安卓学习笔记14:安卓手势操作编程 文章目录零、学习目标一、安卓手势操作原理二、安卓手势类与接口1、MotionEvent2、GestureDetector3、OnGestureListener三、教学案例——利用手势切换美女图片(一)运行效果(二)涉及知识点(三)实现步骤1、创建安卓应用【SwtichBelleImageByGesture】2、将美女图片素材拷贝到drawable目录3、主布局资源文件activity_main.xml4、主界面类MainActivity5、启动应用,查看效果四、课后作业 零、学习目标 能说出安卓手势操作原 阅读详情

相关推荐

X3850x6 6241 fireware固件升级

登录联想https://datacentersupport.lenovo.com/cn/zc网站,选择system x,x3850 x6,type选择6241 选择驱动及应用程序,BIOS/UEFI 选择lnvgy_fw_uefi_a9e156a-4.90_anyos_32-64.uxz 文件,点击下载 选择IMM2, 下载lnvgy_fw_imm2_tcoo58b-5.80_anyos_noarch.uxz ps:3837和3839会跳转到ibm网站下载 笔记本直连.

zds00virtue的博客 5452

【Ren‘py】视觉小说游戏开发引擎 | 个人开发 | 基础 | 语法 | 自用 by.Akaxi

【Ren'py】视觉小说游戏开发引擎 | 个人开发 | 基础 | 语法 | 自用 by.Akaxi

Akaxi的博客 1万+

MTK平台 MT6789 烧录 efuse 3.0 Configuration SOP

=====================生成cert1和cert2 key===============================================生成efuse key相关文件===========================================签名DA==========================================================正常编译。=====================Security3.0 的SOP 说明。

a785722173的博客 2329

android手势_您可能不知道的七个Android手势

android手势Gestures make using your phone faster and more efficient—but only if you know the gestures in the first place. Here’s a collection of some of the best ones for Android that you may not alread...

culunyi0802的博客 2227

WSL2 Ubuntu复现FoundationPose项目(docker)

复现一个基于深度学习的物体姿态估计框架FoundationPose项目,使用docker,WSL2

woaidawangwang的博客 2000

QTableView为例:Qt模型视图委托(MVD)(Model-View-Delegate)

QT中的MVD(模型-视图-委托)模式是一种类似于MVC的设计模式,将数据、界面和交互逻辑分离。模型负责数据管理,视图负责显示界面,而委托则嵌入在视图中处理数据的显示和编辑。QT提供了多种视图组件(如QListView、QTreeView、QTableView)和模型类(如QStandardItemModel、QAbstractItemModel),支持数据的多样化呈现。委托(Delegate)通过定制显示和编辑行为增强了视图的灵活性。该模式适用于各类数据结构展示(列表、表格、树形),能够高效处理数据与界面

菜一头包的博客 1988

Android Stuido 安卓手势编程

Android Stuido 安卓手势编程

weixin_62763352的博客 271

基于ROS的机械臂手眼标定-Aruco使用与相机标定

基于ROS的机械臂手眼标定-Aruco使用与相机标定 折腾了一段时间的机械臂的手眼标定,相关资料挺多的,但使用起来都比较复杂,新手一般比较难搞懂。于是想做一个比较简单易懂易用的手眼标定程序。 程序都是Copy的开源代码,所以也开源出来: 开源地址:https://gitee.com/ohhuo/handeye-calib 作为手眼标定中的重要一环,相机中标定板位姿关系获取直接影响标定精度,我们使用aruco这个开源程序来实现坐标的获取。 #mermaid-svg-WkFpFkV4QqzXMvJ4 .labe

生活不止眼前的苟且 1万+

android手势框架,安卓的手势识别框架

android2.2开始安卓中出现了ScaleGestureDetector。从此第一台多点触控的安卓手机出现了,不管是手机还是ScaleGestureDetector都非常了不起。但我疑惑不解的是,为什么ScaleGestureDetector是唯一一个多点触控手势识别api,为什么没有类似于旋转手势识别的api,识别两个手指(或者多个手指)配合而造成的旋转。难道是因为安卓和google之间的...

weixin_36024234的博客 499

#基于原生JS的交互式代码高亮编辑器实现教程

本文介绍了一个轻量级交互式代码高亮编辑器的实现方案。该编辑器采用原生JavaScript开发,支持语法高亮、行号显示、主题切换等核心功能,适合嵌入博客、文档等场景使用。 项目技术栈包括HTML5/CSS3/JavaScript,使用Prism.js实现语法高亮,prettier提供代码格式化功能。编辑器界面分三个区域:顶部工具栏(语言选择/主题切换)、中间编辑区(行号+代码)、底部状态栏(语言/字符数)。 核心功能实现包括:通过contenteditable属性创建可编辑区域,Flex布局实现行号与代码同步

qq_42386733的博客 1035

Altium Designer20 PCB板子绘制

版层 top layer 顶层 bottom layer 底层 设置板子大小 布局 过孔 top layer层连到bottom layer层。通过via连接。 设置线宽 在design rules里可以设置线宽。 右键new rule 可以新增线宽,电源设置成20mil 还可以设置很多其他的线宽 修改安全距离 安全距离太短容易出现毛刺,然后短路,一般设置成20mil 修改元器件旋转角度 修改rotation step,每次旋转45°。 修改光标大小 下面的cursor type是修改光标

及时总结 2581

android手势识别软件下载,安卓的手势识别框架

昨天介绍了一个手势处理的框架http://jcodecraeer.com/a/opensource/2015/0211/2465.html ,这个框架其实是将手势识别封装成了一个个的类,更好复用而已,其实是很久以前的项目了,但是其面向对象的思维还是值得学习的。下面是相关文章的翻译,翻译的不是很认真哈。从api android2.2开始安卓中出现了ScaleGestureDetector。从此第...

weixin_32042959的博客 218

Python与.NET革命性互操作:PythonNet实现零门槛双向调用——深度解析与实战案例

跨语言调用实战指南:Python与.NET深度集成 摘要:本文详解Python与.NET双向互调技术,通过PythonNet和Python.Runtime实现高效跨语言协作。核心优势包括:无缝集成Python机器学习模块(如PaddleOCR)与.NET UI框架,内存直传提升90%数据效率,减少80%重复代码。内容涵盖:1)Python调用.NET类库的完整流程;2)C#动态加载Python脚本及环境配置要点;3)反射机制实现私有方法调用与泛型处理;4)性能优化技巧(类型缓存、NumPy数组转换);5)异

墨夶的博客 611

android支持全面屏手势,安卓最好用的全面屏手势APP发布:无需ROOT

原标题:安卓最好用的全面屏手势APP发布:无需ROOT随着Android P DP2加入原生的手势操作,可以预见这种系统特性在今后将大规模普及开来。 目前,国产手机跟进的速度最快,MIUI、一加氢OS、360 OS、Color OS、Funtouch OS等都已经有了相应的全面屏手势方案,普遍收获用户好评。现在,XDA的大神开发者也送出了 Navigation Gestures APP ,可以供所...

weixin_30873127的博客 1809

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Android单目手势识别,单目手势识别及其在安卓平台的应用研究

摘要:目前,人机交互技术日益普及,已经被广泛应用于科研,生产,生活等领域.基于单目视觉的手势识别技术是人机交互的重要组成部分,该技术主要涉及手势的分割,特征的提取,手势的识别与跟踪等多个关键环节.但是手势识别在实际应用中容易受到光照变化,复杂背景的干扰,另外,考虑到交互实时性要求,算法的复杂度受到一定限制,这些都让单目动态手势识别技术成为人机交互领域中的难点.因此,本文提出低运算量的改进手势识别算...

weixin_35654096的博客 449

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

android手势密码csdn,LeetCode 351. 安卓系统手势解锁(回溯)

文章目录1. 题目2. 解题1. 题目我们都知道安卓有个手势解锁的界面,是一个 3 x 3 的点所绘制出来的网格。给你两个整数,分别为 ​​m 和 n,其中 1 ≤ m ≤ n ≤ 9,那么请你统计一下有多少种解锁手势,是至少需要经过 m 个点,但是最多经过不超过 n 个点的。先来了解下什么是一个有效的安卓解锁手势:每一个解锁手势必须至少经过 m 个点、最多经过 n 个点。解锁手势里不能设置经过重...

weixin_29696799的博客 431

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

安卓编程基础——手势编程

安卓手势将给我们的技术提供更有利的解决方法。本篇文章教会大家如何通过手势实现如何上下左右切换图片。

lovepanyuxiao的博客 1855

Android基础学习笔记14:安卓手势编程

Android基础学习笔记14:安卓手势编程

m0_63691734的博客 203

android手势识别opencv,较为成熟的安卓项目--人面识别,手势识别向

一、 人脸识别1. 目标检测&目标追踪&人脸检测&人脸识别效果2. Android下使用OpenCV实现人脸检测效果3.人脸标识效果4. 人脸检测github:https://github.com/VernonVan/Face效果:主要实现人脸基本信息检测、趣味贴图、相似指数等功能效果5.基于Face++开发的一款人脸识别App,通过照片可以检测性别和年龄效果6.RxJav...

weixin_39956612的博客 527

android 手势识别算法,基于安卓的视觉手势识别系统的制作方法

本发明属于Android平台技术领域。背景技术:手势是人类交流沟通中不可分割的一部分,视觉手势识别技术在最近几年也得到了一些应用,这一技术开辟了人机交互系统的新方向,因此对视觉手势的研究具有很大的现实意义。技术实现要素:系统处理流程设计:在系统的设计过程中,系统结构流程如下:首先,手机用户安装软件,打开软件之后进入主界面;然后会是缩略图界面,握拳向左向右移动来浏览大量图片;我们可以通过手势张开打开...

weixin_34297395的博客 743

android支持全面屏手势,无需root即装即用 这全面屏手势App超好用

现在已经越来越多的手机用上了全面屏,然而并不是所有的厂商都会在ROM中,给全面屏手机配套一个好用的手势方案。买了全面屏的安卓,但又想要如同iPhone X一样操作行云流水?现在国外著名安卓开发者论坛XDA上的大神出手了,开发出了一款无需root就可以使用的全面屏手势APP“Navigation Gesture”。它的体验到底如何?我们一起来看看。这款Navigation Gesture应用并不需要...

weixin_39895283的博客 2601

5.1 安卓手势

实例化手势侦测器,每个事件处理方法输出一条调试信息。通过资源标识符获取控件实例。初始化图像资源标识符数组。

Heiye芽的博客 309

Android 开发之 手势开发

手势识别在安卓开发里虽然用到的场景不是很多,但有时候还是能让你的产品更方便,更有趣味。比如登陆时不用每次重复输入密码,只需九宫格手势解锁,就像支付宝客户端那样。下面我们完成一个简单的手势识别开发。 我们首先需要一个描述手势动作的文件,在模拟器里预装一个叫GesturesBuilder的程序,这个程序就是让你创建自己的手势的(GesturesBuilder的源代码在sdk问samples里面有,有兴

qq_28514109的博客 806

4.3 安卓手势编程

现代智能手机都支持触屏手势操作,可以方便地实现多种功能,最常见的是通过上下左右滑动手势实现切换功能。在安卓系统中,每一次手势交互都会依照以下顺序执行,这个顺序可以说就是安卓手势操作的原理。触屏一刹那,触发一个事件。该事件被监听,在其onTouch()方法里获得该对象。通过(手势侦测器)将此对象移交给。监听器获得该事件对象,然后根据该对象封装的信息,做出合适的处理。

GE_wy的博客 405

安卓手势编程

针对手势滑动,我们编写onFling()事件处理方法,通过手势切换图片。这个事件处理方法有四个参数,滑动起点信息封装在el里,滑动终点信息封装在e2里,第3个参数是手势横向滑动速度,第4个参数是手势纵向滑动速度。动作事件类,用于封装手势、触摸笔、轨迹球等等的动作事件。手势监听器,是一个手势交互的监听接口,其中提供了多个抽象方法,并根据GestureDetector的手势识别结果调用相对应的方法。在安卓系统中,每一次手势交互都会依照以下顺序执行,这个顺序可以说就是安卓手势操作的原理。

IKZWJ0516的博客 523
上一篇: Android 检测手机多点触摸点数
下一篇: 系统广播大全
南岸北栀
博客等级 码龄10年 32粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值