为什么80%的码农都做不了架构师?>>>   

这段时间一直在忙Android的项目,总算抽出点时间休息一下,准备把一些项目用到的Android经验分享一下。

在Android开发过程中,经常会碰到Activity之间的切换效果的问题,下面介绍一下如何实现左右滑动的切换效果,首先了解一下Activity切换的实现,从Android2.0开始在Activity增加了一个方法:

public void overridePendingTransition (int enterAnim, int exitAnim)

其中:

enterAnim 定义Activity进入屏幕时的动画

exitAnim 定义Activity退出屏幕时的动画

overridePendingTransition 方法必须在startActivity()或者 finish()方法的后面。

Android已经内置了几种动画效果,可以见 android.R.anim 类。一般情况下我们需要自己定义屏幕切换的效果。首先我们先了解Activity的位置定义,如下图:

从上图可以看出,以手机屏幕下面边未X轴,屏幕左边为Y轴,当Activity在X轴值为-100%p时,刚好在屏幕的左边(位置1),当X轴值为0%p时,刚好再屏幕内(位置2),当X=100%p时刚好在屏幕右边(位置3)。

清楚了位置后,我们就可以实现左右滑动的切换效果,首先让要退出的Activity从位置2移动到位置1,同时让进入的Activity从位置3移动位置2,这样就能实现从左右切换效果。

实现过程如下,首先定义2个动画,在 res目录创建anim目录, 然后在目录创建动画的xml文件:out_to_left.xml (从左边退出动画) 、in_from_right.xml(从右边进入动画)

out_to_left.xml (从 位置2 移动到 位置1)

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="<a href="http://my.oschina.net/asia" class="referer" target="_blank">@android</a> :anim/accelerate_interpolator"><translate android:fromXDelta="0%p" android:toXDelta="-100%p"android:duration="500" />
</set>

in_from_right.xml (从 位置3 移动到 位置2)

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="<a href="http://my.oschina.net/asia" class="referer" target="_blank">@android</a> :anim/accelerate_interpolator"><translate android:fromXDelta="100%p" android:toXDelta="0%p"android:duration="500" />
</set>

注:  android:fromXDelta 动画开始的位置,   android:toXDelta  动画结束的位置, android:duration 动画的时间。

Android 代码如下:

public class LeftRightSlideActivity extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);   Button button = (Button)findViewById(R.id.button1);button.setOnClickListener(new View.OnClickListener() {  @Overridepublic void onClick(View v) {Intent intent = new Intent();intent.setClass(LeftRightSlideActivity.this, SlideSecondActivity.class);startActivity(intent);//设置切换动画,从右边进入,左边退出overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);                }});}
}

效果图如下:

虽然左右滑动切换的实现很简单,但是对于原理的理解很重要,掌握了原理可以充分发挥想象力设计出各种各样的动画效果,希望对一些入门的新手有帮助。

以后在慢慢整理一些项目中用到的切换动画效果。

转载于:https://my.oschina.net/dsm/blog/72445

Android的Activity屏幕切换动画(一)-左右滑动切换相关推荐

  1. 转 Android的Activity屏幕切换动画(一)-左右滑动切换

    这段时间一直在忙Android的项目,总算抽出点时间休息一下,准备把一些项目用到的Android经验分享一下. 在Android开发过程中,经常会碰到Activity之间的切换效果的问题,下面介绍一下 ...

  2. Android的Activity屏幕切换动画左右滑动切换

    在Android开发过程中,经常会碰到Activity之间的切换效果的问题,下面介绍一下如何实现左右滑动的切换效果,首先了解一下Activity切换的实现,从Android2.0开始在Activity ...

  3. android finish动画,Android 关于Activity的跳转和finish时切换页面动画实现

    今天沈阳斌子在做APP时,客户的需求变更是在原有的程序上加入跳转页面的动画切换,类似IPhone的左出右进的方式,返回时是相反的效果.我知道用两种方式可以实现这样的效果,一种就是通过在startAct ...

  4. android 关闭activity进场入场动画

    1.关闭入场动画 1.1anim文件夹创建activity_in <?xml version="1.0" encoding="utf-8"?> &l ...

  5. uni-app小程序利用动画做出左右滑动切换的效果

    需求:场景类似驾校刷题,手指从左往右大幅度滑动切换至上一题,手指从右往左大幅度滑动切换至下一题.已答题目直接显示正确与否和答案状态,所选答案不存在后端,后端只保存该题是否答过.答对还是答错的状态.获取 ...

  6. html图片切换动画,js实现图片切换(动画版)

    学习了妙味课堂的图片切换(动画版) 这个小效果相对简单一点. 知识预备: [1]background-position-x background-position属性设置背景原图像(由 backgro ...

  7. html页面 tab JS滑动切换,JS+CSS实现滑动切换tab菜单效果

    本文实例讲述了JS+CSS实现滑动切换tab菜单效果.分享给大家供大家参考.具体如下: 这是风格简单的一款JS+CSS滑动门特效代码,当鼠标滑过菜单的时候,二级菜单自动切换,鼠标不需要点击,滑动门效果 ...

  8. android 设置activity启动退出动画 | 解决设置activity 动画不生效问题

    前提: 如果有动画,最好把activity 设置成透明,不然会有黑屏! <style name="Trancelust" parent="AppTheme" ...

  9. android开机动画不播放,android 设置activity启动退出动画 | 解决设置activity 动画不生效问题...

    前提: 如果有动画,最好把activity 设置成透明,不然会有黑屏! true 方法一:代码里面设置 getActivity().startActivity(intent,bundle); getA ...

最新文章

  1. 如何用 OpenCV、Python 和深度学习实现面部识别?
  2. 20155222 第二周测试
  3. Eclipse-配置workspace路径
  4. Computer:计算机测试理论(开发/测试/上线)之DEV、SIT、UAT、PRD四套环境详细介绍之详细攻略
  5. 用基本信号画出如下的信号_股市入门基本知识丨下跌时期可以抄底的安全信号有哪些...
  6. laravel ajax ip,怎么在Laravel中利用AJAX动态刷新部分页面
  7. 全网最新Spring Boot2.5.1整合Activiti5.22.0企业实战教程<监听器篇>
  8. App导航设计全面梳理——可临摹素材原型模版,轻松缕清思路!
  9. Python对象特殊方法及其用法演示
  10. 集成学习—Adaboost(理解与应用)
  11. PyQt5学习笔记2-GUI编程基础-2
  12. reduce个数究竟和哪些因素有关
  13. win10系统迁移到固态(傻瓜式--分区助手)
  14. MySQL学习笔记(七)视图,触发器,事务,存储过程,函数,流程控制,索引
  15. springboot 批量生成条形码图片,并下载
  16. Excise_day02
  17. 面试题:“你的职业规划是什么?”
  18. tiny6410 适用于win7 64bit的dnw 的USB下载驱动
  19. SSM框架搭建与实战案例
  20. Oracle v12.2 Bug 27163928触发ORA-4031 导致实例crash.

热门文章

  1. laravel博客中文章删除遇到问题
  2. ASP.NET Core 2.0 : 三. 项目结构
  3. Python发送邮件(带附件)
  4. XShell与虚拟机连接的IP问题
  5. ionic 项目中添加modal的步骤流程
  6. Mac OS X Terminal 101:终端使用初级教程
  7. HDOJ 1874 HDU 1874 畅通工程续 ACM 1874 IN HDU
  8. UPDATE ORACLE(9i OR 10G) USER'S PASSWORD AND GET ORACLE VERSION MESSAGE
  9. Struts2新特性
  10. java arraylist 实现原理_Java进阶--深入理解ArrayList实现原理