美文网首页安卓开发
Android自定义控件 多样式进度View

Android自定义控件 多样式进度View

作者: MonkeZ | 来源:发表于2017-07-28 19:23 被阅读26次

      系统进度条贼不好用,大小设置不确定,宽高又不确定,所以自信开发了一套还算是比较完备的进度控件。



    效果大概就这么多,背景和进度背景都可以使用颜色,或者图片,圆角,以及进度条宽高,游标等等属性。
    一共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>
    

    具体使用请移步https://github.com/ZhangQinhao/MProgressBar,Sample中具备上述进度的实现方式。

    相关文章

      网友评论

        本文标题:Android自定义控件 多样式进度View

        本文链接:https://www.haomeiwen.com/subject/vimflxtx.html