Android(安卓)Studio通过style和layer-list实现自定义进度条
1 style
1.1 sytles.xml简介
style表示样式,Android的样式在“res/values/styles.xml”中定义。可以在Android Studio中对该文件进行编辑。以下为Android Studio自动生成的styles.xml文件的内容。
从以上内容中可以看出,styles.xml文件中包含一个根元素
以上代码中,定义了一个名为“AppTheme”的样式,标签的“parent”属性指定了“AppTheme”要继承的样式。“AppTheme”样式中包含了三个属性,分别是“colorPrimary”、“colorPrimaryDark”以及“colorAccent”。
1.2 创建自定义进度条的样式
在“styles.xml”中添加一个新的标签,该标签标识自定义进度条的样式。
以上代码中,添加了一个名为“StyleProgressBarMini”的样式,该样式继承自“@android.style/Widget.ProgressBar.Horizontal”,即水平进度条。也就是说,自定义的进度条类型为水平型。关于进度条控件的介绍请参考《Android Studio中使用进度条控件》。android:maxHeight和android:minHeight指定了进度条的最大高度和最小高度;android:indeterminateOnly表示进度条是否显示数字进度;android:progressDrawable指定了自定义进度条中显示的图像,该值为“@drawable/shape_progressbar_mini”代表了@drawable/shape_progressbar_mini.xml文件,该文件的创建和编辑在“2 layer-list”中介绍。
2 layer-list
使用Drawable资源的根元素layer-list可以将多个drawable按照顺序层叠在一起显示。使用layer-list可以自定义进度条的背景、当前进度和第二进度。
2.1 创建layer-list文件
在Android Studio项目中添加layer-list文件的方法请参见《Android Studio中创建Selector文件的方法》。唯一不同的是在“Root element:”中输入“layer-list”,在“File name”中输入“shape_progressbar_mini”,与“1.2 创建自定义进度条的样式”中提到的progressDrawable属性值相同。
图1 创建layer-list 文件
2.2 编辑layer-list文件
layer-list文件中,标签
-
其中,
接下来定义进度条的当前进度和第二进度。
-
-
3 shape
使用Drawable资源的根元素shape来定义进度条的边框。
3.1 创建shape文件
创建的方法与“2.1 创建layer-list文件”中提到的方法相同,只是将“Root element:”设置为shape。
3.2 编辑shape文件
以上代码中,android:shape属性指定了shape的形状,即矩形;
4 创建自定义进度条
可以使用以上创建的style、layer-list以及shape来自定义进度条。
其中,style属性指定了在“1 style”中定义的风格;android:background属性指定了在“3 shape”中创建的shape。
自定义进度条运行效果如图2所示。
图2 自定义进度条
更多相关文章
- 安全新手入坑——HTML标签
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveI
- Android(安卓)so 文件全部报错:Duplicate resources
- Android(安卓)Studio 3.0后出现AAPT2和“android.enableAapt2”
- Android存储方式