標籤:
1.定義xml動畫
1)在anim檔案夾下定義xml檔案
解釋:這個檔案夾下面的檔案會被預設為動畫檔案,如果這個檔案不存在,需要自己建立
display_result_anim.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" >
<!--縮放動畫-->
<scale android:duration="300" android:fromXScale="2.0" android:fromYScale="2.0" android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:pivotX="50%" android:pivotY="50%" android:toXScale="1.0" android:toYScale="1.0" />
<!--位置移動動畫-->
<translate android:duration="300" android:fromYDelta="154.5%" android:toYDelta="0" android:fromXDelta="-49.5%" android:toXDelta="0" > </translate>
<!--透明度動畫-->
<alpha android:fromAlpha="1" android:toAlpha="0.5" android:duration="300" /></set>
display_input_anim.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="300" android:fromXDelta="0" android:fromYDelta="44.1%" android:toXDelta="0" android:toYDelta="0" /> <alpha android:fromAlpha="0" android:toAlpha="1" android:duration="300" /></set>
2.代碼中引用
import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.view.animation.TranslateAnimation; private Animation myAnimationInput; private Animation myAnimationResult; myAnimationInput = AnimationUtils.loadAnimation(context, R.anim.display_input_anim); myAnimationResult = AnimationUtils.loadAnimation(context,R.anim.display_result_anim); myAnimationInput.setFillAfter(true); myAnimationResult.setFillAfter(true);EditText current = (EditText) getCurrentView();current.startAnimation(myAnimationInput);next.startAnimation(myAnimationResult);
知識點總結:
1.android:fromYDelta="44.1%" 它的屬性值有三種形式
(1)如果直接寫33,表示的是距離這個動畫擁有者(edittext)的值為33px,根據+ -決定是在擁有者上還是下 ;如果是寫成33%,這個就是表示的,相對於動畫擁有者自身尺寸的33%的距離,這個尺寸是動畫擁有者最開始設定的尺寸,也就是不加動畫的時候的尺寸;如果寫成是33%p,那麼就是相對於父容器的尺寸了
(2)如果是強制寫成33dp的話,會報錯,說明不支援這麼方式
(3)如果是引用@dimen的話,你會發現引用值的結果是0,也就是沒有動畫效果,雖然它並不會報錯
2.各個動畫的效果
三種如上,最後一種是
旋轉動畫
<rotage android:fromDegrees="0" android:toDegrees="-360" android:pivotX="50%" android:pivotY="50%" android:duration="3000" />
屬性就是角度值,正負表示順逆時針
android-animation 動畫效果實現(xml形式實現)