Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> android XML動畫初步解析(activity界面之間跳轉demo)

android XML動畫初步解析(activity界面之間跳轉demo)

編輯:關於android開發

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:
<!--{cke_protected}{C}%3C!%2D%2D%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%2D%2D%3E-->
<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">
</rotate></set>
rotate_out:
<!--{cke_protected}{C}%3C!%2D%2D%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%2D%2D%3E-->
<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">
</rotate></set>
scale_in:
<!--{cke_protected}{C}%3C!%2D%2D%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%2D%2D%3E-->
<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">
</scale></set>
scale_out:
<!--{cke_protected}{C}%3C!%2D%2D%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%2D%2D%3E-->
<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">
</alpha></scale></set>

translate_in:
<!--{cke_protected}{C}%3C!%2D%2D%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%2D%2D%3E-->
<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">

</translate></set>

translate_out:
<!--{cke_protected}{C}%3C!%2D%2D%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%2D%2D%3E-->
<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">
</translate></set>

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved