自定义背景及进度背景的progressbar进度条,可在用户设置等级等领域有所作用

来源:互联网 发布:linux 启动nginx命令 编辑:程序博客网 时间:2024/06/13 12:32

最近项目中有一个执行用户等级经验进度的需求。一开始没什么思绪,因为系统自带的进度条,无论是seekbar还是progressbar都不能够满足需求,首先这个时候,我就会考虑自定义一个私人订制的进度条style,我们知道进度条有两种样式,即水平进度条(@android:style/Widget.ProgressBar.Horizontal)以及圆形进度条(@android:style/Widget.ProgressBar.Large),在android的api里面的style主要有两种款式,当然了,这个圆形进度条还有大小之分,这里也不再多加重复,接下来我马上就放大招了。


在一个自定义一个控件的shiho9u,首先我们的思路要清晰。比如自定义一个TextView,我们会新建一个类,然后继承自textview,那么我们这个progressbar也是类似的,但是我的需求没那么麻烦,所以我选择在style里面操作。



首先新建一个style标签,暂时命名为mystyle,然后继承自@android:style/Widget.ProgressBar.Horizontal,即:parent=“@android:style/Widget.ProgressBar.Horizontal”,接下来我们就像是覆写父类方法一样的设置自己控件背景了,比如覆写一个android:progressDrawable,这个属性是用来定义整个progressbar的背景,我们在这里可以自定义自己的背景了,一个@drawable:xxxxx即可关联上自己写的背景,这个背景有自定义的渐变或者其他颜色。那么还有一个属性android:indeterminateDrawable,这个属性是用来设置进度状态的背景。有了这两个属性,基本上可以满足自己的需要了,当然了,更多的属性还有        <item name="android:minHeight">20dip</item>
        <item name="android:maxHeight">20dip</item>
        <item name="android:mirrorForRtl">true</item>高宽啊什么的。自定义控件其实没那么复杂,我们要想让自己的app跟其他的一般的app不一样,那么我们只有学会自定义自己的控件,所以我们不要怕自定义,相反的,我们还要迎难而上,这样才能走向高手之路。祝小伙伴儿学习愉快,今天先分享到这里了。


0 0