Android实现手势滑动和简单动画效果
发布时间 - 2026-01-11 01:07:47 点击率:次一、手势滑动

1.Activity都具有响应触摸事件,也就是说只要触摸Activity,他都会回调一个onTouchEvent()方法。但是在这个方法里无法处理事件,需要配合使用手势识别器(GestureDetector)中的方法onTouchEvent对事件(event)进行分析处理,我们只需要重写这个方法中的操作来达到我们的需求。
/**
* activity被触摸后,会回调此方法onTouchEvent,并回传一个event对象
* event对象封装了触摸时的动作信息,包括x、y坐标等等信息
*/
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
boolean onTouchEvent = gestureDetector.onTouchEvent(event);
//如果这个方法消费了这个这个event事件,就返回True,否则false。
return super.onTouchEvent(event);
}
2.我们需要根据滑动手势做界面跳转,GestureDetector封装了可以监听不同手势的方法。这个方法在哪个Activity中使用,这个Activity就能监听这个Activity接收的动作,在这些方法里可以重写需要的动作。
GestureDetector gestureDetector = new GestureDetector(this, new OnGestureListener(){
@Override
public boolean onDown(MotionEvent e) {
// 按下
return false;
}
@Override
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@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) {
// 长按
}
/**
*滑动, e1为起点坐标,e2为终点坐标
*在这里消费掉event事件,重写其中的方法以达到需求。
/
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2,float velocityX, float velocityY) {
if(e1.getRawX()-e2.getRawX()>200){
flingnextpage(); //向左滑(与滑动动画配合效果较好)
}else if(e2.getRawX()-e1.getRawX()>200){
flingpreviouspage();//向右滑
}
if(Math.abs(e1.getRawY()-e2.getRawY())>200){
System.out.println("不能斜着滑动");
return true;//true表示我们消费了这个触摸事件
}
if(Math.abs(velocityX)<150 ||Math.abs(velocityY)<100){
System.out.println("滑动的太慢了,请滑快点");
return true;
}
return true;
}
});
注:页面坐标
二、简单动画
目的:用XML文件写一个Activity跳转页面的过渡动画。
1. 在res目录下新建anim文件夹,创建两个xml文件并编辑动画动作,一个是进入动作,另一个退出动作。
(1)在anim_next_in.xml中写好进入动作。
<?xml version="1.0" encoding="utf-8"?> <translate android:fromXDelta="100%p" <!—当前界面的右侧界面,从右侧滑入当前界面--> android:toXDelta="0" android:duration="100" <!--移动时间--> xmlns:android="http://schemas.android.com/apk/res/android"> </translate>
(2)在anim_next_out.xml中写好退出动作。
<?xml version="1.0" encoding="utf-8"?> <translate android:fromXDelta="0" <!—当前界面向左滑出--> android:toXDelta="-100%p" android:duration="100" xmlns:android="http://schemas.android.com/apk/res/android"> </translate>
2.调用Activity的overridePendingTransition方法,来实现平移动画。
/**
* overridePendingTransition(int enterAnim, int exitAnim)
* enterAnim为进入当前界面的动画资源ID, exitAnim为退出当前界面的动画资源ID
/
@Override
public void flingnextpage() {
// TODO Auto-generated method stub
startActivity(new Intent(this, NewActivity.class));
overridePendingTransition(R.anim.anim_next_in, R.anim.anim_next_out);
finish();//关闭当前界面
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Android
# 手势滑动
# Android仿京东顶部搜索框滑动伸缩动画效果
# Android实现页面滑动切换动画
# Android程序开发之使用Design包实现QQ动画侧滑效果和滑动菜单导航
# Android编程实现ViewPager多页面滑动切换及动画效果的方法
# Android Tween动画之RotateAnimation实现图片不停旋转效果实例介绍
# android实现图片闪烁动画效果的两种实现方式(实用性高)
# Android Glide图片加载(加载监听、加载动画)
# Android图片翻转动画简易实现代码
# Android实现图片点击预览效果(zoom动画)
# Android实现ViewFlipper图片动画滑动
# 重写
# 跳转
# 装了
# 回调
# 写好
# 在这里
# 在这个
# 就能
# 较好
# 只需要
# 按下
# 在这些
# 来实现
# 慢了
# 进行分析
# 大家多多
# 滑出
# 斜着
# 回传
# 也就是说
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何获取免费开源的自助建站系统源码?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
如何快速辨别茅台真假?关键步骤解析
晋江文学城电脑版官网 晋江文学城网页版直接进入
零基础网站服务器架设实战:轻量应用与域名解析配置指南
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
利用vue写todolist单页应用
如何在服务器上配置二级域名建站?
Linux系统运维自动化项目教程_Ansible批量管理实战
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
如何在橙子建站上传落地页?操作指南详解
如何在万网ECS上快速搭建专属网站?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
如何自定义建站之星网站的导航菜单样式?
如何在万网自助建站平台快速创建网站?
Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件
详解Huffman编码算法之Java实现
如何快速生成橙子建站落地页链接?
C语言设计一个闪闪的圣诞树
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
详解jQuery停止动画——stop()方法的使用
如何为不同团队 ID 动态生成多个“认领值班”按钮
如何在香港服务器上快速搭建免备案网站?
Laravel如何实现数据库事务?(DB Facade示例)
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
Laravel如何升级到最新版本?(升级指南和步骤)
如何确保FTP站点访问权限与数据传输安全?
MySQL查询结果复制到新表的方法(更新、插入)
EditPlus 正则表达式 实战(3)
百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧
如何在建站之星网店版论坛获取技术支持?
如何在建站主机中优化服务器配置?
如何快速生成可下载的建站源码工具?
黑客入侵网站服务器的常见手法有哪些?
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
浅析上传头像示例及其注意事项
详解Android中Activity的四大启动模式实验简述
手机软键盘弹出时影响布局的解决方法
北京网站制作公司哪家好一点,北京租房网站有哪些?
如何用VPS主机快速搭建个人网站?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
如何快速搭建支持数据库操作的智能建站平台?
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
javascript如何操作浏览器历史记录_怎样实现无刷新导航
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
企业网站制作这些问题要关注
微信小程序 HTTPS报错整理常见问题及解决方案
上一篇:缓冲区溢出 攻击 「建议收藏」
上一篇:缓冲区溢出 攻击 「建议收藏」

