Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android學習-動畫(基本的四種動畫)

android學習-動畫(基本的四種動畫)

編輯:關於Android編程

先看段關於android中動畫配置文件的偽代碼:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
     android:interpolator="@android:anim/accelerate_interpolator"> 
    <alpha /> 
    <rotate /> 
    <scale/> 
    <translate/> 
</set> 

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:interpolator="@android:anim/accelerate_interpolator">
    <alpha />
    <rotate />
    <scale/>
    <translate/>
</set>


現在來慢慢理清楚:

 

xmlns:android="http://schemas.android.com/apk/res/android"  

xmlns:android="http://schemas.android.com/apk/res/android

申明xml的命名空間,xmlns(xml namespace的縮寫),而冒號後面是給這個引用起的別名schemas是xml約束文件,規定了xml中有哪些元素(標簽),元素有哪些屬性以及各元素的關系,當申明了命名空間和約束文件後,就可以在改xml文檔中引用資源,存放在apk/res/android下的資源都可以訪問,比如在寫<rotate/>中的屬性時,用"android:"這樣來引用的,當然也可以自己定義自己的資源文件(比如test),就可以用"test:"這樣來引用。

 android:interpolator="@android:anim/decelerate_interpolator" 

android:interpolator="@android:anim/decelerate_interpolator"

首先明白interpolator是定義一個動畫的變化率,這使得基本的動畫效果(scale、alpha、translate、rotate)得以加速、減速以及重復等等,用通俗的話來講就是動畫的進度使用Interpolator來控制,控制效果有勻速、正加速、負加速、無規則變速等等,Interpolator接口只有一個抽象方法getInterpolation(float input),由此SDK中擴展了另外幾個類。

常用Interpolator類:
AccelerateInterpolator:動畫從開始到結束,變化率是一個加速的過程。
DecelerateInterpolator:動畫從開始到結束,變化率是一個減速的過程。
AccelerateDecelerateInterpolator:動畫從開始到結束,變化率是先加速後減速的過程。

androidSDK中動畫分為兩種,
一種是Tween Animation(漸變動畫):通過對場景裡的對象不斷地做圖像變換處理,如平移、縮放、旋轉等。

一種是Frame Animation(幀動畫):順序播放實現做好的圖像。

 


android中的四種動畫

四種動畫是android提供的基本動畫類型,在配置文件中,他們都可以放在<set></set>標簽中,那麼怎樣建立一個動畫效果呢。看下面的xml動畫配置文件:
第一步:在res目錄下建立一個名字為anim的文件夾,並且在這個文件夾下建立一個新的xml文件,文件名字自擬。
第二步:添加命名空間,即寫set標簽,並且指定動畫的控制器(可以不寫)。
第三步:開始制定和設置動畫類型及動畫初值。

請注意當有rotate標簽和translate標簽一起使用時,請將rotate標簽放在translate之前。

各個標簽的屬性含義

set標簽屬性的含義:
android:shareInterpolator—— 是否共享插入器,共享時,四個子節點都用一個插入器
android:interpolator ——指定一個動畫的插入器,使用系統資源
android:fillEnabled——當設置為true時,fillAfter和fillBefroe將會都為true,此時會忽略fillBefore和fillAfter兩種屬性
android:fillAfter——該動畫轉化是否在動畫結束後被應用boolean
android:fillBefore——該動畫轉化是否在動畫開始前被應用boolean
android:repeatMode—— 重復模式restart  或者 reverse
android:repeatCount ——重復次數integer
android:duration ——動畫持續時間integer
android:startOffset—— 動畫時間間隔long
android:zAdjustment——定義動畫zorder的變換normal 或者 top 或者 bottom

scale標簽屬性的含義:
android:interpolator——同set屬性
android:fromXScale——動畫開始時,x坐標上的延伸尺寸(float 0.0表示收縮到最小,1.0表示無收縮)
android:toXScale——同理
android:fromYScale——同理
android:toYScale——同理
android:duration——動畫持續的時間(int 單位毫秒)
android:pivotX——動畫的開始時相對於物件的x位置(0%~100%)
android:pivotY——同理 
android:fillEnabled ——同set屬性
android:fillBefore——同set屬性
android:fillBefore——同set屬性
android:fillAfter——同set屬性
android:startOffset——同set屬性
android:repeatCount——同set屬性
android:repeatMode——同set屬性

rotate標簽屬性的含義:
android:fromDegrees—— 動畫開始時的角度(有正負號之分)
android:toDegrees——動畫結束時的角度(有正負號之分)
android:pivotX——可以理解為旋轉的中心(0%~100%)
android:pivotY——同理 
android:duration——動畫持續的時間(int 單位毫秒)

alpha標簽屬性的含義:
android:toAlpha——動畫結束時的透明度(float  0表示完全透明 1表示完全不透明)
android:duration——動畫持續的時間(int 單位毫秒)
android:fromAlpha——動畫開始時的透明度(float  0表示完全透明 1表示完全不透明)

translate標簽屬性的含義:
android:fromXDelta——動畫開始時,X坐標上的位置integer  默認以自己為參照物
android:toXDelta——動畫結束時,X坐標上的位置integer  默認以自己為參照物
android:fromYDelta——動畫開始時,Y坐標上的位置integer  默認以自己為參照物
android:toYDelta——動畫結束時,Y坐標上的位置integer  默認以自己為參照物

當然,scale,rotate,alpha,translate中的屬性不止這些,還有些和set標簽一樣,就沒有重復寫。到這裡android動畫最簡單的知識就完了。接下來還會繼續學習,繼續總結。

 


 

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