1. 程式人生 > >Android自定義控制元件 多樣式進度View

Android自定義控制元件 多樣式進度View

系統進度條賊不好用,大小設定不確定,寬高又不確定,所以自信開發了一套還算是比較完備的進度控制元件。

這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

效果大概就這麼多,背景和進度背景都可以使用顏色,或者圖片,圓角,以及進度條寬高,遊標等等屬性。
一共3個控制元件:MHorProgressBar MVerProgressBar MRingProgressBar 前兩個具有觸控移動進度的功能。

<!--MProgressBar相關-->
    <declare-styleable name="MProgressBar">
        <attr name="maxprogress" format
="float"/>
<!--設定最大值--> <!--通用--> <attr name="durprogress" format="float"/> <!--設定當前值--> <!--通用--> <attr name="bgdrawable" format="color|reference"/> <!--進度條背景顏色或者圖片--> <!--通用--> <attr name="bgbordercolor" format="color"
/>
<!--底部邊框顏色 預設與底色相同--> <!--通用--> <attr name="bgborderwidth" format="dimension"/> <!--底部邊框寬度--> <!--通用--> <attr name="fontdrawable" format="color|reference"/> <!--進度顏色或者圖片--> <!--通用--> <attr name="cursordrawable" format
="reference"/>
<!--遊標圖示--> <!--通用--> <attr name="cursordrawable_width" format="dimension"/> <!--遊標圖示寬度--> <!--通用--> <attr name="cursordrawable_height" format="dimension"/> <!--遊標圖示高度--> <!--通用--> <attr name="progresswidth" format="dimension"/> <!--進度條寬度 預設最大--> <!--通用--> <attr name="fontdrawable_type"> <!--進度顏色或者圖片顯示型別--> <!--MVerProgressBar MHorProgressBar--> <enum name="clamp" value="0"/> <!--拉伸--> <enum name="repeat" value="1"/> <!--重複--> <enum name="cover" value="2"/> <!--覆蓋 一般適用上層圖片覆蓋下層圖片,通常bgdrawable_type=clamp 詳見Sample - id:mpb_5--> </attr> <attr name="cantouch" format="boolean"/> <!--是否可以點選--> <!--MVerProgressBar MHorProgressBar--> <attr name="bgdrawable_type"> <!--進度條背景顏色或者圖片顯示型別--> <!--MVerProgressBar MHorProgressBar--> <enum name="clamp" value="0"/> <!--拉伸--> <enum name="repeat" value="1"/> <!--重複--> </attr> <attr name="radius" format="dimension"/> <!--進度條圓角半徑--> <!--MVerProgressBar MHorProgressBar--> <attr name="startLeftOrRight"> <!--進度方向:從左開始/從右開始--><!--進度方向:逆時針/順時針--> <!--MHorProgressBar MRingProgressBar--> <enum name="left" value="0"/> <enum name="right" value="1"/> </attr> <attr name="startTopOrBottom"> <!--進度方向:從下開始/還是從上開始--> <!--MVerProgressBar--> <enum name="bottom" value="0"/> <enum name="top" value="1"/> </attr> <attr name="startangle" format="integer"/> <!--開始角度--> <!--MRingProgressBar--> </declare-styleable>