【Android】自定义控件_动态水波纹效果的进度球

最近有个项目,里面要用到进度球,类似于360的流量球或是迅雷下载进度球效果,经过一段时间的琢磨,实现了如下效果的自定义控件。

效果显示
接下来一起看看这个控件的使用方法吧!

添加依赖

  1. 在外层build.gradle中添加如下代码:
allprojects {
   	repositories {
   		...
   		maven { url 'https://jitpack.io' }
   	}
}
  1. 在项目build.gradle中添加依赖:
dependencies {
	...
   	implementation 'com.github.BillWang514:WaveProgressView:1.2.1'
}

控件的使用

在布局XML文件中引用com.bluefire.widget.WaveProgressView标签,并设置相关属性即可。

...

<com.bluefire.widget.WaveProgressView
        android:id="@+id/waveProgressView"
        android:layout_width="200dp"
        android:layout_height="200dp"
        app:submerged_textColor="#ffffff"
        app:center_textColor="#00695C"
        app:bindingText="bottom_text"
        app:stroke_width="4dp"
        app:bottom_text="40%"
        app:center_text="10"
        app:top_text="剩余订单"
        app:max="120" />        
 ...

XML属性

属性说明
app:top_text设置顶部字体的内容
app:top_textSize设置顶部字体大小
app:top_textColor设置顶部字体颜色
app:center_text设置中间字体的内容
app:center_textSize设置中间字体的大小
app:center_textColor设置中间字体的颜色
app:bottom_text设置底部字体的内容
app:bottom_textSize设置底部字体的大小
app:bottom_textColor设置底部字体的颜色
app:wave_color定义波浪的颜色
app:wave_height定义波峰高度
app:stroke_color定义外环的颜色
app:stroke_width定义外环的宽度,默认5dp
app:submerged_textColor被波浪淹没后字体颜色
app:max进度最大值,默认100
app:progress进度值
app:bindingText绑定显示进度的Text,可选值有none、top_text、center_text、bottom_text

以上这些属性大部分都可以在java代码中用SetXXX方法设置。

需要注意以下属性使用:

  • layout_widthlayout_height
    控件宽高的设置,只取较小的那个值作为球的直径,所以最好是layout_width和layout_height设置相同的值,默认宽高是150dp。
  • app:submerged_textColor
    如果没有设置此属性,那么三个Text的颜色值将不会改变;如果设置了,三个Text均会在被波浪淹没后改变为此颜色值。
  • app:bindingText
    此属性用来绑定显示进度百分比的Text,其显示优先级高于 top_text | center_text | bottom_text设置的内容,也就是说,只要为其绑定了三个Text中的任一个,不管当初此Text设置了什么内容,都将被进度百分比所覆盖(文章开头的效果图的bindingText=bottom_text),百分比保留两位小数。

总体来说此控件的用法较为简单,本人也就写到这里,如果各位在使用中遇到什么Bug,欢迎留言指出。

Demo源码地址: https://github.com/BillWang514/WaveProgressView.git.

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值