先上布局:

<ProgressBarandroid:id="@+id/pb"style="@android:style/Widget.ProgressBar.Horizontal"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_weight="1"android:progressDrawable="@drawable/bg_progressbar"android:max="100"/>

progressDrawable是重点,根标签是layer-list,看下代码:

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2008 The Android Open Source ProjectLicensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License.
--><layer-list xmlns:android="http://schemas.android.com/apk/res/android"><item android:id="@android:id/background"><shape><corners android:radius="5dip" /><solid android:color="@color/color_e7e7e7"/></shape></item><item android:id="@android:id/secondaryProgress"><clip><shape><corners android:radius="5dip" /><solid android:color="@color/color_f04726"/></shape></clip></item><item android:id="@android:id/progress"><clip><shape><corners android:radius="5dip" /><solid android:color="@color/color_f04726"></solid></shape></clip></item></layer-list>

这里介绍一下clip标签,<clip>标签使用了如下的3个属性来控制如何截取图像。

android:drawable:指定要剪切的原图像,这里用的不是图片,用的是shape。

android:clipOrientation:截取的方向。可取的值:horizontal和vertical。分别表示水平和垂直方向截取图像。

android:gravity:表示如何截取图像。例如,left表示从左侧截取图像,right表示从右侧截取图像。

这样出来的进度是直角的,如果想要进度也是圆角的,布局如下:

?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2008 The Android Open Source ProjectLicensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License.
--><layer-list xmlns:android="http://schemas.android.com/apk/res/android"><item android:id="@android:id/background"><shape><corners android:radius="5dip" /><solid android:color="@color/color_e7e7e7"/></shape></item><item android:id="@android:id/secondaryProgress"><clip><shape><corners android:radius="5dip" /><solid android:color="@color/color_f04726"/></shape></clip></item><item android:id="@android:id/progress"><scaleandroid:scaleWidth="100%" ><shape><corners android:radius="5dip" /><solid android:color="@color/color_f04726"></solid></shape></scale></item></layer-list>

关键点是将clip标签替换为scale标签,scaleWidth设置为100%。

layer-list方式自定义progressbar相关推荐

  1. android 自定义进度条_第一百八十九回:Android中自定义ProgressBar三

    各位看官们大家好,上一回中咱们说的是Android中自定义ProgressBar的例子,这一回咱们继续说该例子.闲话休提,言归正转.让我们一起Talk Android吧! 看官们,我们在上一回是通过自 ...

  2. Android 自定义ProgressBar 实现进度圆环

    实现的效果如下图 实现效果图demo 的地址 代码很简单自定义ProgressBar 下面直接列举下代码 progressBarView 的代码如下 public class ProgressBarV ...

  3. 自定义ProgressBar(自定义View和ClipDrawable)

    开发中经常需要自定义ProgressBar,这里用了自定义View和ClipDrawable实现简单的ProgressBar 自定义View效果: public class CustomProgres ...

  4. android自定义progressbar样式,Android开发中如何实现自定义ProgressBar的样式

    Android开发中如何实现自定义ProgressBar的样式 发布时间:2020-11-20 16:08:10 来源:亿速云 阅读:294 作者:Leah Android开发中如何实现自定义Prog ...

  5. android 自定义背景园,Android 自定义ProgressBar 进度条颜色和背景颜色

    Android 自定义ProgressBar 进度条颜色和背景颜色 首先,在drawable目录下新建文件 personal_center_level_progress_bg.xmlandroid a ...

  6. android 自定义progressbar demo,Android自定义View――动态ProgressBar之模仿360加速球

    在之前一篇文章中我们讲解了三种ProgressBar的做法,详见-><Android 自定义View--自定义ProgressBar >.这一节中我们模仿360加速球制作一个动态Pr ...

  7. 自定义android进度条渐变,自定义ProgressBar简单完成颜色渐变功能进度条

    我们在使用电脑或者手机时,经常会遇到进度条,比如下图: 今天我来演示一下,如何做出简单并且漂亮的颜色渐变进度条. 首先我先新建了一个系统默认样式的进度条,代码如下: 运行后显示如下: 大家可以看出,并 ...

  8. android自定义progressbar 图片,自定义ProgressBar(自定义View和ClipDrawable)

    开发中经常需要自定义ProgressBar,这里用了自定义View和ClipDrawable实现简单的ProgressBar 自定义View效果: public class CustomProgres ...

  9. 扩展 OpenLayers.Layer.WMS 为自定义的瓦片浏览服务

    WMS 是OGC制定的标准 WEB GIS 协议,现在众多的图形提供商都提供了自己的WEB图形服务,例如:ArcIMS.GoogleMaps.KaMap等等.要使用这些服务并制作自己的WEB客户端,使 ...

最新文章

  1. 1002: A+B for Input-Output Practice (II)
  2. 行走方案问题(动态规划实现)
  3. 大华管理平台用户名_大华HOC智慧物流可视化联网追溯解决方案,助力物流行业更高效...
  4. NYOJ题目839合并
  5. ux设计中的各种地图_UX设计中的格式塔原理
  6. Git 图形化操作之合并提交记录
  7. 【xpath】多个xpath Element对象,提取结果是一样的
  8. 高效记忆/形象记忆(07)110数字编码表 11-20
  9. 史上最全CAD快捷键大全汇总
  10. 如何高效学习,斯科特·扬(全文)
  11. html导航栏下拉菜单怎么做,css制作导航栏下拉菜单及问题
  12. Linux bpf 1.1、BPF内核实现
  13. 现代大学英语精读第二版(第四册)学习笔记(原文及全文翻译)——10B - None of This Is Fair(毫无公平可言)
  14. linux regulator接口驱动demo
  15. 计算机硬盘加密的几种方法,对于移动硬盘加密方法 你了解多少种呢?
  16. 企业电子招投标系统简介 招投标系统源码 定制化服务 二次开发 java招投标系统 招投标系统功能设计
  17. 比较好的在线绘制图表工具
  18. git clone unexpected disconnect while reading sideband packet
  19. 谷歌语言设置_如何设置您的Google主页以使用两种语言
  20. FTP文件夹打开错误,Windows无法访问此文件夹

热门文章

  1. win10 安装msi程序异常解决,使用msiexec命令安装
  2. Threejs贴图材质翻转问题
  3. [树形dp] Jzoj P5814 树
  4. event.preventDefault()
  5. Java并发工具CountDownLatch使用详解
  6. 数字字母分离c语言,C语言顺序结构 -C语言实现数字分离(附带源码)
  7. mysql和sql server能共存吗_让防火墙与SQL Server数据库共存
  8. 薛定谔的Excel随机数
  9. 如何根据快递公司筛选出需要的单号
  10. VS WPF 整理XAML代码