Android 开发过程中,相信大部分都会使用到界面切换,而Android本身的界面切换会显得很生硬,今天就带大家一起来看一看Android提供给我们的那些动画效果,以及如何在XML使用这些效果。


在Android的XML动画中主要有:

translate:移动(左进右出等)

alpha:淡入淡出

scale:缩放

rotate:旋转


1.translate:

<translate        android:duration="400"                      android:fromXDelta="100%p"        android:toXDelta="0" />


duration:表示持续的时间

fromXDelta:表示X轴起始delta值 (待会给出如何计算delta值)

toXDelta:表示X轴结束的delta值

如何计算delta值:Android 屏幕的坐标轴是以左上角为原点的,向右X为正值,向下Y为正值,如图所示

同理对于Y轴,在屏幕下方delta值为正,屏幕上方delta值为负


2.alpha

<alpha        android:fromAlpha="0.0"        android:toAlpha="1.0"        android:duration="400"        />


fromAlpha:起始透明度 ,0表示透明,1表示不透明

toAlpha:结束时的透明度

duration:持续变化时间


3.scale

    <scale         android:fromXScale="0.0"         android:toXScale="1.0"         android:fromYScale="0.0"         android:toYScale="1.0"         android:pivotX="50%"         android:pivotY="50%"         android:startOffset="0"         android:duration="400"         android:repeatCount="1"         android:repeatMode="restart"         />

fromXScale:起始的X轴缩放程度,0表示没有

toXScale:结束的X轴缩放程度

fromYScale:起始的Y轴缩放程度

toYScale:结束的Y轴缩放程度

pivotX:缩放起始的X轴相对位置 50%表示在屏幕中间

pivotY:缩放的起始Y轴相对位置

startOffset:动画多次执行的间隔时间,如果只执行一次,执行前会暂停这段时间

repeatCount:重复次数

repeatMode:repeatMode,动画重复的模式,reverse为反向,当第偶次执行时,动画方向会相反。 restart为重新执行,方向不变


4.rotate

<rotate android:duration="400"        android:fromDegrees="-180"        android:toDegrees="180"        android:pivotX="50%"        android:pivotY="50%"        />


fromDegrees:起始的角度 0表示正常

toDegrees:结束时的角度


好了,动画的属性介绍完了,现在教大家如何使用

1.首先在res下创建anim文件夹,用来存放自定义的动画效果

创建4个xml文件

in_from_left_in.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:interpolator="@android:anim/decelerate_interpolator" >    <!--0的时候表示占满屏幕,100%表示在屏幕右边,-100%表示在屏幕左边-->    <translate        android:duration="400"        android:fromYDelta="-100%p"        android:toYDelta="0%p" />    <alpha        android:fromAlpha="0.0"        android:toAlpha="1.0"        android:duration="400"        /></set>

in_from_left_in.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:interpolator="@android:anim/decelerate_interpolator" >    <!--0的时候表示占满屏幕,100表示在屏幕右边,-100表示在屏幕左边-->    <translate        android:duration="400"        android:fromYDelta="100%p"        android:toYDelta="0" />    <alpha        android:fromAlpha="0.0"        android:toAlpha="1.0"        android:duration="400"        /></set>

out_to_left.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:interpolator="@android:anim/decelerate_interpolator" >    <!--0的时候表示占满屏幕,100表示在屏幕右边,-100表示在屏幕左边-->    <translate        android:duration="400"        android:fromYDelta="0%p"        android:toYDelta="-100%p" />    <alpha        android:fromAlpha="1.0"        android:toAlpha="0.0"        android:duration="400"        /></set>

out_to_right.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:interpolator="@android:anim/decelerate_interpolator" >    <!--0的时候表示占满屏幕,100表示在屏幕右边,-100表示在屏幕左边-->    <translate        android:duration="400"        android:fromYDelta="0%p"        android:toYDelta="100%p" />    <alpha        android:fromAlpha="1.0"        android:toAlpha="0.0"        android:duration="400"        /></set>


2.在style文件中做如下操作

<resources>    <!-- Base application theme. -->    <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">        <!-- Customize your theme here. -->        <!--注意在主题里引用动画效果-->        <item name="android:windowAnimationStyle">@style/AnimationActivity</item>    </style>    <style name="AnimationActivity" parent="@android:style/Animation.Activity">        <!--打开一个activity,新的activity从进入动画-->        <item name="android:activityOpenEnterAnimation">@anim/in_from_right</item>        <!--打开一个activity,原来activity退出的动画-->        <item name="android:activityOpenExitAnimation">@anim/out_to_left</item>        <!--关闭一个activity(包括返回键),上一级activity进入的动画-->        <item name="android:activityCloseEnterAnimation">@anim/in_from_left</item>        <!--关闭一个activity,关闭的activity退出的动画-->        <item name="android:activityCloseExitAnimation">@anim/out_to_right</item>    </style></resources>

3.在AndroidManifest.xml中的Application中将以上的主题引用




这样你再进行activity跳转就会有新的动画效果了。

是不是发现动画其实也是这么简单!

代码是用Android Studio写的,如果你使用的是Eclipse,只要把关键代码拷贝到Eclipse相应位置就行了

跳转动画DEMO


更多相关文章

  1. Android(安卓)屏幕分辩率相关问题
  2. android animation
  3. TextView跑马灯的几点问题:持续动画 和 与EditText争抢焦点的问题
  4. Android动画详细探究
  5. Android(安卓)多个Fragment切换动画
  6. Android:Layout_weight属性解析
  7. ( 转)关于Android的nodpi,xhdpi,hdpi,mdpi,ldpi
  8. Android开关机动画/铃音是如何播放的?
  9. android动画

随机推荐

  1. Android选择本地视频文件
  2. Android(安卓)屏幕适配
  3. Android(安卓)一个apk多个ICON执行入口
  4. Android BroadcastReceiver
  5. Android display架构分析(七-2)
  6. 利用Android两行代码真正杀死你的App
  7. 【可能有点用的记录】Android Studio 3.2
  8. GET Android 摸拟器 IP.
  9. Android(安卓)界面—UI开发控件
  10. Android 复习笔记之图解TextView类及其XM