1 style

1.1 sytles.xml简介

style表示样式,Android的样式在“res/values/styles.xml”中定义。可以在Android Studio中对该文件进行编辑。以下为Android Studio自动生成的styles.xml文件的内容。

        

从以上内容中可以看出,styles.xml文件中包含一个根元素,具体的每种样式是通过根元素下的自标签

以上代码中,添加了一个名为StyleProgressBarMini”的样式,该样式继承自“@android.style/Widget.ProgressBar.Horizontal”,即水平进度条。也就是说,自定义的进度条类型为水平型。关于进度条控件的介绍请参考《Android Studio中使用进度条控件》。android:maxHeightandroid: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文件中,标签表示一个drawable。添加一个drawable的代码如下

                        

其中,标签下的标签用来定义集合形状,默认形状为矩形。而下的标签指定了该形状的圆角,radius属性指定了圆角的半径,半径值越大,说明角越圆;标签指定了形状的渐变,android:angle指定了渐变的角度,0表示从上到下,90表示从左到右;android:startColorandroid:endColor指定了渐变的起始颜色和结束颜色;android:centerY指定了渐变中心的相对位置,该值为0~1。以上代码定义了一个用于表示进度条背景的drawable

接下来定义进度条的当前进度和第二进度。

                                                                                                

3 shape

使用Drawable资源的根元素shape来定义进度条的边框。

3.1 创建shape文件

创建的方法与2.1 创建layer-list文件”中提到的方法相同,只是将“Root element:”设置为shape

3.2 编辑shape文件

            

以上代码中,android:shape属性指定了shape的形状,即矩形;标签用来设置形状的填充颜色,该标签只有一个属性android:color用来指定填充的颜色;标签用来设置圆角,属性android:radius指定了圆角的半径;标签设置内容与形状边界的内间距,android:bottomandroid:leftandroid:rightandroid:top分别表示下、左、右和上内间距。

4 创建自定义进度条

可以使用以上创建的stylelayer-list以及shape来自定义进度条。


其中,style属性指定了在“1 style”中定义的风格;android:background属性指定了在“3 shape”中创建的shape

自定义进度条运行效果如图2所示。

 

2 自定义进度条

更多相关文章

  1. 安全新手入坑——HTML标签
  2. 一款常用的 Squid 日志分析工具
  3. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  4. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  5. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  6. 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveI
  7. Android(安卓)so 文件全部报错:Duplicate resources
  8. Android(安卓)Studio 3.0后出现AAPT2和“android.enableAapt2”
  9. Android存储方式

随机推荐

  1. php类和对象的关系
  2. 深入理解PHP与WEB服务器交互
  3. php变量的作用域
  4. php语言的优势是什么
  5. 原生 PHP 实现支付宝 App 第三方登录获取
  6. php魔术常量使用方法
  7. php怎么远程连接oracle
  8. php八大数据类型有哪些
  9. php的优势与缺点
  10. php怎么接入公众号