1. 程式人生 > >安卓Android多階段進度條progress bar附帶動畫效果

安卓Android多階段進度條progress bar附帶動畫效果

還在為美工設計出的進度條而發愁嗎?大家先看效果吧

筆者也是想給大家傳遞一個思想,面對效果不要怕大膽去做。大膽去想,想自己能實現什麼,還差什麼,如何去讓自己的設想變成現實。
今天就用屬性動畫實現一個動態多階段進度條的例子。

1 xml遮罩層的實現。

其實就三層。進度內容層,遮罩層,進度外觀層。我們事實湊出遮罩層,就實現了顯示進度條的效果。

<FrameLayout
        android:layout_width="300dp"
        android:layout_height="40dp"
        android:layout_alignParentTop
="true" android:layout_centerHorizontal="true" android:layout_marginTop="74dp">
<ImageView android:id="@+id/content" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="left|center_vertical"
android:src="@drawable/b0" />
<ImageView android:id="@+id/over" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="left|center_vertical" android:padding="3dp" android:src
="@drawable/b1" />
<ImageView android:id="@+id/imOut" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="left|center_vertical" android:scaleType="fitXY" android:src="@mipmap/bg" /> </FrameLayout>

2 如何獲取遮罩層ImageView的寬度。

直接getWidth();那你就錯了,大家可以好好研究一下activity生命週期相關知識,這裡不做太多解釋。

 contentImageView.post(new Runnable() {
            @Override
            public void run() {
                h = contentImageView.getHeight();
                w = contentImageView.getWidth();
                Toast.makeText(MainActivity.this, "h:" + h + "w:" + w, Toast.LENGTH_SHORT).show();
            }
        });

3 一行程式碼實現移動。

對這就是屬性動畫,一行程式碼效果飛起來,w值得大小可以通過你的需求完全自定義。

  ObjectAnimator.ofFloat(overImageView, "translationX", w).setDuration(500).start();

最後祝大家都能實現自己心目中的效果。沒有幹不成的程式設計師,只有不敢想的程式設計師。

歡迎加安卓開發交流群:308372687(博主儘可能幫助大家)

這裡寫圖片描述

—————————————————————————————

作者推薦:

—————————————————————————————