关于Activity向右滑动销毁的具体实现

Android Activity界面跳转动画讲解 当我们需要从一个Activity切换到另一个Activity时,可以使用界面跳转动画来提供平滑的过渡效果和良好的用户体验。可以根据实际需求,自定义不同的动画资源文件,并在代码中使用相应的资源来实现更丰富的动画效果。首先,我们需要在res目录下的anim文件夹中创建两个动画资源文件,分别用于定义Activity进入和退出时的动画效果。接下来,在代码中的Activity类中使用这些动画资源来实现界面跳转动画。方法中,我们不需要手动设置退出动画,系统会自动应用与进入动画相反的动画效果。属性指定了动画的持续时间。 阅读详情

在Android开发中,我们可能不喜欢Activity简单的退出方式,喜欢那种屏幕随手指滑动而滑动,当全部滑出时就销毁Activity,在很多的应用中都做了类似的使用,它使应用的用户体验更好。

当然,我也想把这个东西加到自己的应用上面去,不过因为自己不会啊,看了几本书,上面都没有,只有最简单的销毁方式,一段时间我都没有在接触它了。但是,还是出现了转折点,我知道了一个网站“优快云”,这可能就是命运的转折点吧,我在这个网站里找到的资源简直不能用多来形容了。。。。额额额,有点偏题了,好吧,我就打个广告,学IT的如果不知道优快云,他比别人会多走好多的弯路啊。

好了,在优快云里面我找到了许多关于Activity滑动销毁的源代码,当然有几个我都看不懂,但是还是让我找到了一个能看懂的,并且自己做了一个Demo,测试没有问题,所以就拿出来给大家分享。

先给大家看一下效果图吧:


手指滑动,屏幕跟着滑动,最后Activity销毁。

在实现这个功能之前,我们需要做一些了解,确保你有实现这个功能的基础。

<1>.掌握Android开发的基本基础

<2>.对布局有深刻的认识

<3>.对Activity切换有一定的了解

<4>.对动画有一定的了解

好了,需要具备这些基础,你才可以实现这个功能,否则很难实现,需要看一些基础了。

这个功能的实现需要的只是一个类,对,只是一个类。但是,我没有时间去明白这个类,我所会的只是知道怎么去使用这个类来实现功能。比如说,Android提供了ListView和Adapter,你只是知道如何使用ListView来Adapter就可以做出列表界面,而不需要知道为什么可以做到,因为封装的很好嘛。

说了这么多,该进入正题了:

这个类是SildingFinishLayout,没错,看这个类的名字我们就可以知道它是在XML布局文件中使用的,就像自己自定义的View一样在XMl中使用,它的使用如下:

PS:这个类不是Android提供的,是别人自己写的。

<com.example.activitytest.SildingFinishLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#060034"
    tools:context=".MainActivity" >
    <LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        >
        <Button
            android:id="@+id/btn" 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="打开SecondActivity"
            />
    </LinearLayout>
    
</com.example.activitytest.SildingFinishLayout>

如上面的XML代码所示,这样就使用了这个类,不过需要注意的是,这个类的父类是RelativeLayout,我本人不太喜欢使用RelativeLayout, 所以我就用了LinearLayout来充满整个布局,转换到我喜欢的布局O(∩_∩)O哈哈~

在这个布局文件里面,有一个按钮,点击它就会打开第二个Activity,对它点击响应的函数为:

public void openSecondActivity(View v){
		startActivity(new Intent(this,SecondActivity.class));
		overridePendingTransition(R.anim.base_slide_right_in,
				R.anim.base_slide_remain);
	}

看这个函数,它是实现了由MainActivity跳转到SecondActivity,startActivity这个函数就不用说了,大家都知道,overridePending这个函数大家也知道,关键是里面的动画资源:

base_slide_right_in:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <translate
        android:duration="300"
        android:fromXDelta="100.0%"
        android:interpolator="@android:anim/decelerate_interpolator"
        android:toXDelta="0.0%" />

</set>
这个就是Activity启动时,从屏幕的右边进入,我就不做过多的解释了。

base_slide_remain:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <translate
        android:duration="300"
        android:fromXDelta="0"
        android:interpolator="@android:anim/decelerate_interpolator"
        android:toXDelta="0" />

</set>

这个就是当前Activity跳转到另一个Activity时,当前动画是不动,大家看代码就明白什么意思了。

给大家看一下SecondActivity.java的代码,里面包括了实现了细节:

public class SecondActivity extends Activity{
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_second);
		
		SildingFinishLayout mSildingFinishLayout = (SildingFinishLayout) findViewById(R.id.second_layout);
		mSildingFinishLayout
				.setOnSildingFinishListener(new OnSildingFinishListener() {

					@Override
					public void onSildingFinish() {
						SecondActivity.this.finish();
					}
				});
	}
	public void openMainActivity(View v){
		startActivity(new Intent(this,MainActivity.class));
		overridePendingTransition(R.anim.base_slide_right_in,
				R.anim.base_slide_remain);
	}
	
	@Override
	public void onBackPressed() {
		super.onBackPressed();
		overridePendingTransition(0, R.anim.base_slide_right_out);
	}
}

大家需要注意的就是在OnCreate函数中SlideFinishLayout生成对象然后绑定事件,这个事件就是对手指滑动的响应.setOnSildingFinishListener是SlideFinishLayout中定义的方法,函数原型大家可以去看它的代码,不过,会用也就行了,这样,我们就基本实现了,不过还是不能运行,当运行的时候,结果和我们想要的还是有很大的差别,我当时就懵逼了O(∩_∩)O哈哈~不过我还是将它改过来了,能实现了。

原来问题出在AndroidManifest.xml配置文件中,我们在该文件中配置Activity的时候,如下:

<activity 
            android:name="com.example.activitytest.SecondActivity"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            >
</activity>
记得要把theme属性设置成Theme.Translucent,至于为什么,大家查查单词的意思也就明白了。

好了,至此,这个简单的功能也就实现了,真的很简单,当时怎么就不会呢。

我总结一下实现的过程:

<1>.在XML布局文件中使用SlideFinishLayout(注意它是RelativeLayout的子类)

<2>.在OnCreate中生成SlideFinishLayout的对象,绑定事件(死代码,基本不变,可直接套用)

<3>.在配置文件里面配置Activity,theme属性设置成Theme.Translucent。(明白单词的意思了吗?)

好了,这样就可以加入这个功能了。

有兴趣的大家可以私聊我,也可以关注我的博客(http://blog.youkuaiyun.com/programchangesworld/)

源代码:点击下载






修改mupdf实现pdf查看,非常好哦! 修改mupdf实现listview竖直列表显示pdf每页,加载速度很快,干掉了mupdf中其他的功能,只保留了查看pdf功能,并且还实现单页缩放哦!非常好的资源,不要错过哦!没分了,收点分,但资源绝对对得起分的,我可是花了很多时间的 立即下载

相关推荐

​银行IT运维人必看!IT运维监控指标大全,一篇讲透

文章摘要:本文从七个维度系统阐述了IT运维指标体系,涵盖机房环境、基础设施、网络设施、数据存储、虚拟化平台、数据库中间件和应用层。作者结合20年金融行业经验,详细分析了各层级关键监控指标、正常范围及异常后果,并给出典型故障场景。重点强调现代运维需从被动响应转向主动预防,通过精细化指标管理实现系统稳定性保障。文章特别指出,在国产化与DevOps背景下,运维工作需兼顾传统架构与新兴技术,构建全方位监控体系,将运维从"故障报警"升级为"业务守护"。

最近开始研究AIGC领域技术,欢迎交流 1106

Activity手势滑动返回前一个Activity效果实现

是不是有些时候,单手在大屏的Android手机上进行操作,发现手指再长也不可能长过屏幕,特别是返回操作,有时候需要另一个手加入,看到很多APP(新浪微博、QQ、微信)都实现了单手快速往右水平滑动,实现back功能,交互体验好多了。自己也做了一个来玩玩。     主要思路是实现 OnGestureListener 的 onFling 接口,监听当手指move操作的时候,当水平快速移动到一定距离,就

jiangyou050的专栏 805

[RK3399][Android7.1] 调试笔记 --- 编译GSL5680 touch提示错误

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 现象: 之前在rk3288平台上使用过GSL5680的Touch,现在移植过来一直报如下错误: make[1]: `include/generated/vdso-offsets.h' is up to date. CHK include/generated/compi...

Kris Fei's blog 1056

android手势操作&&实现滑动切换activity

一、给view设置手势操作有2种方式: 1、自定义view并实现其ontouchevent,然后定制自己的监听手势 2、通过GestureDetector和touchlistener配合使用主要介绍第二种方法: GestureDetector是android提供的手势操作类 用法:GestureDetector g = new GestureDetecto

qq_34107153的博客 3834

Power Automate实战:用SharePoint REST API批量处理列表数据(附JSON解析技巧)

本文深入探讨了如何利用Power Automate调用SharePoint REST API实现列表数据的批量自动化处理。文章详细解析了API的协同工作原理、高效的数据获取与筛选技巧,并重点分享了JSON数据解析的核心难点与实战解决方案,旨在帮助企业用户构建稳定可靠的数据处理流程,提升运营效率。

coffee的博客 769

《数据结构》04-树4 是否同一棵二叉搜索树

题目 给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。 输入格式: 输入包含若干组测试数据。每组数据的第1行给出两个正整数N (≤10)和L,分别是每个序列插入元素的个数和需要...

叫我皮卡丘 2012

Android 进出activity的滑动动画效果

最近做了一个项目要求类似QQ中的SlidingMenu中菜单的点击效果. 即点击之后跳到A activity,这时候就要求A activity有一个左滑的动画效果点击A activity上返回按钮或则点击手机的返回键也要触发一个返回动画效果 在A activity上添加手势返回滑动的动画效果. 这里我们先要在项目的res中新建一个anim文件然后添加如下上个动画效果的xml文件: ba

无论何时都不要停止学习,这是改变自己的必要条件 2605

避免bank conflict的使用共享内存的矩阵转置。及其循环展开。转置前后都是行主序,中间共享内存中是列主序

为了避免bank conflict,可以使用padding的方式将数组中的每一行各自占据一个bank,这样每个线程读取不同行的数据时就不会发生bank conflict。padding的方式是在每行数据后面添加一定数量的空数据,使得每行的字节数恰好是bank的整数倍,这样就能保证每行数据各自占据一个bank。具体来说,当一个线程访问共享内存中的一个元素时,GPU会根据该元素在共享内存中的地址计算出其所在的bank,然后将该元素从该bank中读取出来。

weixin_55035144的博客 2144

优雅的构建 Android 项目——侧滑返回使用及原理分析

大屏幕手机在返回前页操作时,点击左上角的 APP 内返回键或者手机自带的返回按键都不是很方便,这时候能通过屏幕侧滑退出当前页面体验就会好很多了。但是 Android 系统并没有想 IOS 一样自带侧滑返回,好在 Android 轮子比较多,本文记录一下个人开源项目 PandaEye 中使用的侧滑返回库 SwipBackLayout 。该库参考 github 上的开源库 SwipeBackLayou...

weixin_34206899的博客 421

Carla中如何渲染opendrive车道线和车道标识(全网独家,附代码)

carla是可以单独加载opendrive并渲染路面的,但是无法把车道线渲染出来,这是一个大坑,因为没有车道线就无法给感知输入。楼主已经实现,直接渲染车道线或者带PBR贴图的车道标识。实现起来非常简单,但必须对carla源码以及ue的开发足够了解。在carla源码中有一个很重要的类opendrivegenerator,它是关于opendrive渲染的全部方法,但是你是找不到它实例化的地方的,因为它被定义在蓝图关卡中。网上包括carla官方关于carla源码的分析少之又少,楼主将自己的经验写出来供大家参考。

u013998156的博客 1090

基于STM32、HAL库的MPX5500DP气压传感器 驱动程序设计

define MPX5500DP_MIN_VOLTAGE 0.2f // 最小输出电压(V)#define MPX5500DP_MAX_VOLTAGE 4.7f // 最大输出电压(V)#define MPX5500DP_MIN_PRESSURE 0.0f // 最小压力(kPa)#define MPX5500DP_MAX_PRESSURE 500.0f // 最大压力(kPa)* @brief 读取压力值(kPa)// 计算压力值 (线性转换)

corlin6688的博客 196

Android 向右滑动销毁(finish)Activity

转载请注明本文出自xiaanming的博客(http://blog.youkuaiyun.com/xiaanming/article/details/20934541),请尊重他人的辛勤劳动成果,谢谢! 今天给大家带来一个向右滑动销毁Activity的效果,Activtiy随着手指的移动而移动,该效果在Android应用中还是比较少见的,在IOS中就比较常见了,例如“网易新闻” ,"美食杰" , "

zyxNobita专栏 841

ardupilot开发 --- Remote ID 篇

适配ardupilot的Remote ID模块研发,远程标识模块研发。Remote ID模块可以通过蓝牙或wifi向外广播无人机的状态信息、位置信息、任务信息等,并可以通过蜂窝数据向国家无人驾驶航空器一体化综合监管服务平台上报这些信息。Remote ID功能是21年起国家出台的民用无人机适航飞行的基本要求!

记录老板的每次pua,分享领导每天的毒鸡汤... 9607

Android 向右滑动销毁(finish)Activity, 随着手势的滑动而滑动的效果

今天给大家带来一个向右滑动切换Activity的效果,Activtiy随着手指的移动而移动,该效果在Android应用中还是比较少见的,在IOS中就比较常见了,例如“网易新闻” ,"美食杰" , "淘宝"等应用采用此效果,而Android应用中“知乎”采用的也是这种滑动切换Activity的效果, 不过我发现“淘宝”并没有随着手势的移动而移动,只是捕捉到滑动手势,然后产生平滑切换界面的动画效果,这个在Android中还是很好实现的, 网上很多滑动切换Activity的Demo貌似都是这种效果的吧,如果要实

Mobile Internet developer 8万+

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

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

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Android 向右滑动销毁(finish)Activity 随着手势的滑动而滑动的效果

Android 向右滑动销毁(finish)Activity 随着手势的滑动而滑动的效果

qq_44906554的博客 239

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Android 向右滑动销毁(finish)Activity, 随着手势的滑动而滑动的效果(一)

今天给大家带来一个向右滑动销毁Activity的效果,Activtiy随着手指的移动而移动,该效果在Android应用中还是比较少见的,在IOS中就比较常见了,例如“网易新闻” ,"美食杰" , "淘宝"等应用采用此效果,而Android应用中“知乎”采用的也是这种滑动切换Activity的效果, 不过我发现“淘宝”并没有随着手势的移动而移动,只是捕捉到滑动手势,然后产生平滑切换界面的动画效果,这

安卓鸟的专栏 1403

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Android 左滑 返回上一个activity(销毁当前activity)

转载请注明本文出自xiaanming的博客(http://blog.youkuaiyun.com/xiaanming/article/details/20934541),请尊重他人的辛勤劳动成果,谢谢! 今天给大家带来一个向右滑动销毁Activity的效果,Activtiy随着手指的移动而移动,该效果在Android应用中还是比较少见的,在IOS中就比较常见了,例如“网易新闻” ,"美食杰" , "

zj的博客 5797

Android 向左向右滑动销毁(finish)Activity, 随着手势的滑动而滑动的效果

最近在学习手势操作的时候看到了这篇文章  Android 向右滑动销毁(finish)Activity, 随着手势的滑动而滑动的效果 博客地址 :http://blog.youkuaiyun.com/xiaanming/article/details/20934541 里面讲的真心不错,对于我这样的菜鸟帮助很大。 这篇博客的主要思想是: 1.从左往右滑动屏幕时,如果滑动距离超过屏幕宽度的一半,就fin

大啊大前端 2170

页面销毁清除动画android,Android 随手势滑动销毁(finish)Activity

今天给大家带来一个向右滑动销毁Activity的效果,Activtiy随着手指的移动而销毁,滑动销毁Activity主要使用GestureDetector来实现这个效果,当手势在屏幕上面滑动的时候 ,会掉用onFling方法,所以,在这个方法里面做判断和操作即可实现我们想要的效果。首先看实现的最终效果:好了直接上代码,相信你会看懂的1、主页面Activitypackagecom.sunny.sl...

weixin_29156679的博客 628
上一篇: 爬楼梯问题
下一篇: Android侧滑菜单的实现
潘建成
博客等级 码龄12年 139粉丝 120原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值