安卓Android多階段進度條progress bar附帶動畫效果
阿新 • • 發佈:2019-02-14
還在為美工設計出的進度條而發愁嗎?大家先看效果吧
筆者也是想給大家傳遞一個思想,面對效果不要怕大膽去做。大膽去想,想自己能實現什麼,還差什麼,如何去讓自己的設想變成現實。
今天就用屬性動畫實現一個動態多階段進度條的例子。
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(博主儘可能幫助大家)
—————————————————————————————
作者推薦:
—————————————————————————————