android progressbar 使用自定义图片时的左右两端圆角效果实现

本文介绍了如何在使用自定义图片时为Android ProgressBar实现左右两端的圆角效果。原生的ProgressBar在纯色状态下可以通过corners属性控制圆角,但在使用自定义图片时,这种方法无效。通过分析源码,作者探讨了在自定义图片情况下控制圆角的特殊方法,并提供了demo源码供参考。
摘要由CSDN通过智能技术生成

              前几天一直在折腾progressbar的圆角进度条动画,各种爬贴摸索,几经折腾找到一种比较方便的方法实现,这里做下笔记,避免下次折腾。原生的progressbar的条形进度条的进度左右是直角的,没有圆角效果的。首先我们来认识一下progressbar。要认识这个progressbar,就需要Read the fucking source code.(盗用了某大牛的话了偷笑)。

             先参考google的api 文档说明(地址在这里:https://developer.android.com/intl/zh-cn/reference/android/widget/ProgressBar.html),这里不一一介绍,只是介绍和做这个效果相关的,需要看其他就自己去看了。这里简单说一下这两个的区别,


            setProgressDrawable和setIndeterminateDrawable。前者一般使用于确定时间,或者长度显示使用的,比如,下载文件的大小是固定的,这时可以使用条形的progressbar显示下载的文件大小。但是有一些却不是固定的,比如请求网络数据时候的时间,下载文件需要的时间,这种显示就不是固定的时间,会随着网速的变化而变化的,这种时候就使用setIndeterminateDrawable方法。官方的api也说明了很仔细了,in indeterminate mode不确定模式。

      progressbar在使用纯色的时候,我们是可以控制进度条两端的圆角大小的。先看看系统样式的源码情况:

条形进度条样式Widget.ProgressBar.Horizontal

<span style="background-color: rgb(249, 249, 249);"><style
 name="Widget.ProgressBar.Horizontal">
    <item name="android:indeterminateOnly">false</item>

    </span><span style="background-color: rgb(102, 255, 255);"><item name="android:progressDrawable">@android:drawable/progress_horizontal</item></span><span style="background-color: rgb(249, 249, 249);">

    <item name="android:indeterminateDrawable">@android:drawable/progress_indeterminate_horizontal</item>

    <item name="android:minHeight">20dip</item>

    <item name="android:maxHeight">20dip</item>

    <item name="android:mirrorForRtl">true</item>
</style>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值