佈局底部彈出動畫

前言

項目中有一個需求是日期篩選是從底部慢慢往上彈出的效果,當時想到的是通過給佈局一個展示動畫來實現,然後就各種百度如何實現:

創建anim

首先在drawable文件夾下創建anim文件夾來存放動畫布局,動畫效過分爲兩部分:
**底部彈出動畫 ** bottom_show.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
        <translate
            android:duration="500"
            android:fromYDelta="100%p"
            android:toYDelta="0" />//從上往下移動顯示
        <alpha
            android:duration="500"
            android:fromAlpha="1.0"
            android:toAlpha="1.0" />//從透明到不透明在1s內
    </set>

彈出消失動畫 bottom_close.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <!--位移-->
    <translate
        android:duration="500"
        android:fromYDelta="0"
        android:toYDelta="100%p" />
    <!--漸變-->
    <alpha
        android:duration="500"
        android:fromAlpha="1.0"
        android:toAlpha="0.0" />
</set>

這樣就是完整的動畫過程,其實也比較好理解。

set爲組合動畫,動畫通過translate(位移)從Y軸的從無到有以及alpha(漸變)從透明到不透明的展示效果給人視覺上的底部彈出動畫

最後給我們的佈局加載:

//顯示動畫
 Animation mStarAction = AnimationUtils.loadAnimation(this, R.anim.bottom_show);//加載動畫文件
            parentView.startAnimation(mStarAction);// parentView,給佈局設置動畫
            parentView.setVisibility(View.VISIBLE);//設置動畫

//消失動畫
       Animation mHiddenAction = AnimationUtils.loadAnimation(this, R.anim.bottom_close);
            parentView.startAnimation(mHiddenAction);
            parentView.setVisibility(View.INVISIBLE);

end

這裏要注意是:由於是給佈局設置顯示隱藏的動畫我們知道給view設置成gone他是不會去 預先加載的,所以第一遍是無法執行該動畫的,所以我們要給佈局設置成invisible屬性而不是gone

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章