Alpha
<?xml version="1.0" encoding="utf-8"?>
<alpha
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="1.0" 起始透明度,取值範圍0.0--1.0 ,從完全透明到完全不透明
android:toAlpha="0.1" 結束透明度,取值範圍同上
android:duration="700" 動畫持續時間,毫秒為機關
android:fillAfter="true" 動畫結束後,保持結束時的狀态
android:fillBefore="true" 動畫結束後,恢複為初始狀态
android:fillEnabled="true" 效果同上
android:repeatCount="5" 重複次數,取值為-1時無限重複,預設動畫執行一次
android:repeatMode ="reverse" 重複模式,有reverse和restart兩個值,前者為倒序回放,後者為重新開始
android::interpolator="@android:anim/accelerate_decelerate_interpolator" #插值器 |
從螢幕上面退出
<?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" android:fromYDelta="0%p" android:toYDelta="-100%p" android:duration="1000"> </translate> |
從螢幕下面進入
<?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" android:fromYDelta="100%p" android:toYDelta="0%p" android:duration="1000"> </translate> |
android:interpolator
@android:anim/accelerate_interpolator: 越來越快 @android:anim/decelerate_interpolator:越來越慢 @android:anim/accelerate_decelerate_interpolator:先快後慢 @android:anim/anticipate_interpolator: 先後退一小步然後向前加速 @android:anim/overshoot_interpolator:快速到達終點超出一小步然後回到終點 @android:anim/anticipate_overshoot_interpolator:到達終點超出一小步然後回到終點 @android:anim/bounce_interpolator:到達終點産生彈球效果,彈幾下回到終點 @android:anim/linear_interpolator:均勻速度。 |
注:
android:duration: 動畫運作時間,定義在多次時間(ms)内完成動畫
android:startOffset: 延遲一定時間後運作動畫
fromXDelta: X軸方向開始位置,可以是%,也可以是具體的像素
toXDelta: X軸方向結束位置,可以是%,也可以是具體的像素
fromYDelta: Y軸方向開始位置,可以是%,也可以是具體的像素
toYDelta: Y軸方向結束位置,可以是%,也可以是具體的像素
具體應用:
實作效果:從底部向上彈出,退出從上向下退出
Android動畫之 Alpha與Translate結合使用 實作步驟:
(1).在res----->建立anim
slide_in_bottom.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_mediumAnimTime"
android:interpolator="@android:anim/decelerate_interpolator"
android:shareInterpolator="false">
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0"/>
<translate
android:fromXDelta="0%"
android:fromYDelta="100%"
android:toXDelta="0%"
android:toYDelta="0%"/>
</set> |
slide_out_bottom.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_mediumAnimTime"
android:interpolator="@android:anim/decelerate_interpolator"
android:shareInterpolator="false">
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.5"/>
<translate
android:fromXDelta="0%"
android:fromYDelta="0%"
android:toXDelta="0%"
android:toYDelta="100%"/>
</set> |
2.styles.xml
<style name="AnimationPicker" mce_bogus="1" parent="android:Animation">
<item name="android:windowEnterAnimation">@anim/slide_in_bottom</item>
<item name="android:windowExitAnimation">@anim/slide_out_bottom</item>
</style> |
3.使用
OptionPicker picker = new OptionPicker(getActivity(), new String[]{"支出", "收入"});
picker.setCanceledOnTouchOutside(false);
picker.setDividerRatio(WheelView.DividerConfig.FILL);
picker.setShadowColor(Color.WHITE, 40);
picker.setSelectedIndex(0);
picker.setCycleDisable(true);
picker.setCancelTextSize(16);
picker.setTopLineColor(Color.parseColor("#F4F4F4"));
picker.setTopBackgroundColor(Color.parseColor("#fbd415"));
picker.setCancelTextColor(Color.BLACK);
picker.setSubmitTextSize(16);
picker.setSubmitTextColor(Color.BLACK);
picker.setTextColor(Color.BLACK);
picker.setDividerColor(Color.parseColor("#F4F4F4"));
picker.setTextSize(16);
picker.setOffset(2);
picker.setAnimationStyle(R.style.AnimationPicker); |
具體代碼實作點選打開連結