上一篇文章android 简单地设置Activity界面的跳转动画讲了简单的activity界面之间的跳转,并且使用的是android内置的一些动画,此章就小提一下如何自己写一些动画来进行跳转。


按例,还是上一下效果:(结尾附上源码)


android XML动画初步解析(activity界面之间跳转demo)_第1张图片android XML动画初步解析(activity界面之间跳转demo)_第2张图片android XML动画初步解析(activity界面之间跳转demo)_第3张图片


要自己写动画,首先要对动画的一些属性有一定了解:

interpolator:被用来修饰动画效果,定义动画的变化率,可以使存在的动画效果accelerated(加速),decelerated(减速),repeated(重复),bounced(弹跳)等。

android:duration:动画的持续时间。

pivotX和pivotY:这两个属性控制着View对象的支点位置,围绕着这个支点进行旋转和缩放变换。默认情况下,该支点的位置就是View对象的中心。

Translate:(有X和Y)这是属性作为一种增量来控制着View对象从它布局容器的左上角坐标偏移的位置。

rotate:这个属性控制View对象围绕它的指点进行2D旋转。

scale:(有X和Y)这个属性控制着View对象围绕它的指点进行2D缩放。

alpha:它表示View对象的透明度。默认值是1(不透明),0带表完全透明(不可见)。


笔者已经极力希望描述的清楚一些了,新手仅仅看解起来可能还会概念理有比较大的问题,在后面demo的代码中希望可以再次给读者一些帮助。

demo还是比较简单的,仅仅实现的是两个activity之间的跳转,主要是在xml的文件上需要读者自己去理解一下,当然笔者demo中可尝试的还是有限的,有兴趣的读者可以自己多钻研一下。


贴下代码截图:

android XML动画初步解析(activity界面之间跳转demo)_第4张图片


MainActivity:

package com.example.animationchanges;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Button button=(Button)findViewById(R.id.button);        button.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent=new Intent(MainActivity.this,OneActivity.class);                startActivity(intent);                //设置跳转动画//                overridePendingTransition(R.anim.scale_in,R.anim.scale_out);//                overridePendingTransition(R.anim.rotate_in,R.anim.rotate_out);                overridePendingTransition(R.anim.translate_in,R.anim.translate_out);            }        });    }}

rotate_in:

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"><rotate    android:duration="@android:integer/config_mediumAnimTime"    android:fromDegrees="0"    android:pivotX="50%p"    android:pivotY="50%p"    android:toDegrees="360"    /></set>

rotate_out:

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"><rotate    android:duration="@android:integer/config_mediumAnimTime"    android:fromDegrees="360"    android:pivotX="50%p"    android:pivotY="50%p"    android:toDegrees="0"    /></set>


scale_in:

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:interpolator="@android:anim/decelerate_interpolator">    <scale        android:duration="@android:integer/config_mediumAnimTime"        android:fromXScale="2.0"        android:fromYScale="2.0"        android:toXScale="1.0"        android:toYScale="1.0"        android:pivotX="50%p"        android:pivotY="50%p"        /></set>

scale_out:

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:interpolator="@android:anim/decelerate_interpolator"    android:zAdjustment="top">    <scale        android:duration="@android:integer/config_mediumAnimTime"        android:fromXScale="1.0"        android:fromYScale="1.0"        android:toXScale=".5"        android:toYScale=".5"        android:pivotX="50%p"        android:pivotY="50%p"/>    <alpha        android:duration="@android:integer/config_mediumAnimTime"        android:fromAlpha="1.0"        android:toAlpha="0" /></set>

translate_in:

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:interpolator="@android:anim/decelerate_interpolator">    <translate        android:duration="@android:integer/config_mediumAnimTime"        android:fromYDelta="50%p"        android:toYDelta="0" /></set>

translate_out:

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:interpolator="@android:anim/decelerate_interpolator">    <translate        android:duration="@android:integer/config_mediumAnimTime"        android:fromYDelta="0"        android:toYDelta="50%p" /></set>



源码地址:http://download.csdn.net/detail/double2hao/9414154




更多相关文章

  1. Android实现ProgressBar旋转菊花加载的动画
  2. Android Animation动画详解(二): 组合动画特效
  3. Android Studio多个用户界面的程序设计(一)
  4. Android应用资源---动画资源(Animation Resources)(三)
  5. [置顶] Android 界面滑动实现---Scroller类 从源码和开发文档中
  6. 牛逼的Android UI--第17章 用户界面设计模式介绍

随机推荐

  1. [android]layout_weight 在layout_width
  2. android (一)RecycleView组件的使用
  3. 《Beginning Android(安卓)Games》给出基
  4. android sd卡路径正确获取 双sd卡获取
  5. Android(安卓)Studio mac安装后的一些有
  6. Android(安卓)解决自定义控件布局中match
  7. Android--Zxing库的使用
  8. Android关于Notification.Builder的使用
  9. Android(安卓)Netd
  10. Android(安卓)FileInputStream类的使用