android XML动画初步解析(activity界面之间跳转demo)

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

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

   

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

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中可尝试的还是有限的,有兴趣的读者可以自己多钻研一下。

贴下代码截图:

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

时间: 2024-12-26 17:23:31

android XML动画初步解析(activity界面之间跳转demo)的相关文章

Android属性动画完全解析(上)

Android属性动画完全解析(上) 转载:http://blog.csdn.net/guolin_blog/article/details/43536355 在手机上去实现一些动画效果算是件比较炫酷的事情,因此Android系统在一开始的时候就给我们提供了两种实现动画效果的方式,逐帧动画(frame-by-frame animation)和补间动画(tweened animation).逐帧动画的工作原理很简单,其实就是将一个完整的动画拆分成一张张单独的图片,然后再将它们连贯起来进行播放,类似

Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/44171115 大家好,欢迎继续回到Android属性动画完全解析.在上一篇文章当中我们学习了属性动画的一些进阶技巧,包括ValueAnimator和ObjectAnimator的高级用法,那么除了这些之外,当然还有一些其它的高级技巧在等着我们学习,因此本篇文章就对整个属性动画完全解析系列收个尾,来学习一下剩下的非常重要的高级技巧. 另外,本篇文章中使用的代码是建立在上篇文章基础之

(转)Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法

目录(?)[-] Interpolator的用法 ViewPropertyAnimator的用法 转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/44171115 大家好,欢迎继续回到Android属性动画完全解析.在上一篇文章当中我们学习了属性动画的一些进阶技巧,包括ValueAnimator和ObjectAnimator的高级用法,那么除了这些之外,当然还有一些其它的高级技巧在等着我们学习,因此本篇文章就对整个属性动画完全解析

Android属性动画完全解析(中)

转载:http://blog.csdn.net/guolin_blog/article/details/43536355 大家好,在上一篇文章当中,我们学习了Android属性动画的基本用法,当然也是最常用的一些用法,这些用法足以覆盖我们平时大多情况下的动画需求了.但是,正如上篇文章当中所说到的,属性动画对补间动画进行了很大幅度的改进,之前补间动画可以做到的属性动画也能做到,补间动画做不到的现在属性动画也可以做到了.因此,今天我们就来学习一下属性动画的高级用法,看看如何实现一些补间动画所无法实现

Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/43536355 大家好,在上一篇文章当中,我们学习了Android属性动画的基本用法,当然也是最常用的一些用法,这些用法足以覆盖我们平时大多情况下的动画需求了.但是,正如上篇文章当中所说到的,属性动画对补间动画进行了很大幅度的改进,之前补间动画可以做到的属性动画也能做到,补间动画做不到的现在属性动画也可以做到了.因此,今天我们就来学习一下属性动画的高级用法,看看如何实现一些补间动画

Android属性动画完全解析

Android属性动画完全解析(上),初识属性动画的基本用法 Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法 Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法

android xml产生和解析

public static void writeToXml(Map<String, Object> map,Writer writer) throws Exception, IllegalStateException, IOException{          XmlSerializer serializer = Xml.newSerializer();          serializer.setOutput(writer);       serializer.startDocument

Android属性动画初步学习笔记

近期学习Android属性动画和VetcorDrawable实现属性动画,以此记录一下学习笔记. 首先是属性动画,小白没截过动态图,方三张静态图吧       效果是点击红色图片,7个选项以属性动画的方式弹出并旋转,最后成一个1/4圆弧排列,再次点击则收回到红色原点下. 布局文件很简单,就是一个RelativeLayout下八个ImageView: 1 <?xml version="1.0" encoding="utf-8"?> 2 <Linear

Android Day06四大组件之Activity多页面跳转和数据传递

1.什么是Activity   官方文档是这么说的:An Activity is an application component that provides a screen     with which users can interact in order to do something, such as dial the phone,     take a photo, send an email, or view a map. Each activity is given a wind