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

本文介绍了一款自定义进度条控件,包括水平、垂直及环形三种样式,支持触摸移动进度,提供了丰富的自定义选项如背景颜色、进度颜色、圆角等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

这里写图片描述
这里写图片描述
这里写图片描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值