Android 動畫學習筆記

來源:互聯網
上載者:User

標籤:

Android動畫的兩種:Frame幀動畫、Tween動畫(位移動畫)【實現:存放目錄res/anim

Tween動畫:(位移、縮放、旋轉):通過對情境裡的對象不斷做映像變換。

四種效果Alpha、Scale、Translate、Rotate[藍色為xml中屬性的解釋]

  1. Alpha:漸層透明度

fromAlpha   動畫開始時候透明度

toAlpha為    動畫結束時候透明度

說明: 0.0表示完全透明; 1.0表示完全不透明

duration     屬性為動畫期間

說明:   時間以毫秒為單位1000=1s

  1. Scale:伸縮

fromXScale  為動畫起始時 X座標上的伸縮尺寸

toXScale    為動畫結束時 X座標上的伸縮尺寸

fromYScale  為動畫起始時Y座標上的伸縮尺寸

toYScale    為動畫結束時Y座標上的伸縮尺寸

說明:以上四種屬性值   

0.0表示收縮到沒有 ;1.0表示正常無伸縮

【值小於1.0表示收縮 ;值大於1.0表示放大】

pivotX:     中心點X座標位置

pivotY:     中心點Y座標位置

duration     屬性為動畫期間

說明:   時間以毫秒為單位

  1. Translate:畫面轉換位置移動動畫效果
  • 注意:fromXTyep to Xtype  fromYType to Ytype預設是以自己為相對參照物

整型值:(三種值:100%p,100%)

fromXDelta 屬性為動畫起始時 X座標上的位置

toXDelta     屬性為動畫結束時 X座標上的位置

fromYDelta 屬性為動畫起始時 Y座標上的位置

toYDelta     屬性為動畫結束時 Y座標上的位置

長整型值:

duration     屬性為動畫期間

說明:   時間以毫秒為單位

android:fillBefore="false"

android:fillAfter="true"  是否保留動畫【變換】後,結束後的位置狀態

(向上為-數,往下是+數)

  1. Rotate:畫面轉移旋轉動畫效果

屬性:interpolator 指定一個動畫的插入器

有三種動畫插入器:

accelerate_decelerate_interpolator   加速-減速 動畫插入器

accelerate_interpolator               加速-動畫插入器

decelerate_interpolator               減速- 動畫插入器

浮點數型值:

fromDegrees 屬性為動畫起始時物件的角度

toDegrees   屬性為動畫結束時物件旋轉的角度 可以大於360度

說明:

當角度為負數——表示逆時針旋轉

當角度為正數——表示順時針旋轉

(負數from——to正數:順時針旋轉)

(負數from——to負數:逆時針旋轉)

(正數from——to正數:順時針旋轉)

(正數from——to負數:逆時針旋轉)

pivotX     屬性為動畫相對於物件的X座標的開始位置

pivotY     屬性為動畫相對於物件的Y座標的開始位置

說明:以上兩個屬性值 從0%-100%中取值;50%為物件的X或Y方向座標上的中點位置

duration  屬性為動畫期間

說明:時間以毫秒為單位

Java中綁定TweenAnimation以及實現動畫效果

private ImageView ivAbout;

private Animation aboutAnimation;

@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.animation_tween_activity);

    initView();

    startAlphaScaleAnimation();

}

private void initView() {

    ivAbout=(ImageView)super.findViewById(R.id.ivAbout);

}

/**啟動移動動畫的方法*/

private void startTransAnimation(){

    aboutAnimation=AnimationUtils.loadAnimation(this, R.anim.translate_about);//獲得動畫效果

aboutAnimation.setFillAfter(true);//設定保留動畫結果的屬性

    ivAbout.startAnimation(aboutAnimation);//將圖片關聯且啟動動畫

}

 

Activity切換動畫
  1. 動畫xml
  2. 在startAcitvity和finish方法後調用overridePending Transition方法

super.overridePendingTransition(enterAnim, exitAnim)

Frame幀動畫
  1. drawable建立xml檔案è選擇animation-list,設定動態資源、時間、是否迴圈屬性。

<!--oneshot="false"迴圈播放  -->

  1. 在Activity.java代碼中進行資源綁定實現動畫效果。

(1)animationlist_frame.xml 配置

<?xml version="1.0" encoding="utf-8"?>

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"

    android:oneshot="false">

    <item android:drawable="@drawable/anim_wip_bk_fog" android:duration="5000"></item>

    <item android:drawable="@drawable/anim_wip_bk_dust" android:duration="5000"></item>

</animation-list>

(2)java代碼的實現

private RelativeLayout root;

private AnimationDrawable drawable;

private void initView() {

root=(RelativeLayout)super.findViewById(R.id.root);

       //取得動畫效果的資源設定為layout root的背景

root.setBackgroundResource(R.drawable.animationlist_frame);

       //將root的背景資源設定為逐幀動畫的資源檔

drawable=(AnimationDrawable)root.getBackground();

}

private void startAnimation() {

    drawable.start();//開始幀動畫

}

@Override

protected void onResume() {

    super.onResume();

    startAnimation();

}

@Override

protected void onStop() {      

    super.onStop();

    drawable.stop();//停止幀動畫

}

Android 動畫學習筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.