有时项目中需要实现水平圆角进度,如下两种,其实很简单

 
 

下面开始看代码,先从主界面布局开始看起:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"> <ProgressBar
android:id="@+id/progressbar1"
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="20dp"
android:layout_margin="10dp"
android:max="100"
android:progress="50"
android:progressDrawable="@drawable/layer_list_progress_drawable_1" /> <ProgressBar
android:id="@+id/progressbar2"
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="20dp"
android:layout_margin="10dp"
android:max="100"
android:progress="20"
android:progressDrawable="@drawable/layer_list_progress_drawable" /> </LinearLayout>

  

两个进度条布局,然后是不同的progressDrawable布局:
layer_list_progress_drawable_1.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item
android:id="@android:id/background"
android:drawable="@drawable/shape_progressbar_bg" /> <item android:id="@android:id/progress">
<clip android:drawable="@drawable/shape_progressbar_progress" />
</item>
</layer-list>

  

layer_list_progress_drawable.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item
android:id="@android:id/background"
android:drawable="@drawable/shape_progressbar_bg" /> <item android:id="@android:id/progress">
<scale
android:drawable="@drawable/shape_progressbar_progress"
android:scaleWidth="100%" />
</item>
</layer-list>

  

从上面两布局文件可以看出,布局文件基本也是相同的,唯一的区别就是一个用的是clip另一个用的是scale
如果在layer-list里面进行设置的话,也是要注意item的添加顺序。

下面是背景,和进度文件:
shape_progressbar_bg.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="10dp" />
<solid android:color="#dadada" /> </shape>

  

shape_progressbar_progress.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="10dp" />
<solid android:color="#0484fa" /> </shape>

  

自定义Android进度条ProgressBar颜色的渐变

自定义Android进度条ProgressBar颜色的渐变其实也很简单,就拿第一个水平进度来说吧,只需要修改一个layer_list_progress_drawable_1.xmllayer_list_progress_drawable.xml就可以了
layer_list_progress_drawable_1.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item
android:id="@android:id/background"
android:drawable="@drawable/shape_progressbar_bg" /> <item android:id="@android:id/progress">
<clip android:drawable="@drawable/shape_progressbar_progress" >
<shape>
<corners android:radius="10dp" />
<!--<gradient-->
<!--android:startColor="#00FF00"-->
<!--android:centerColor="#FFFF00"-->
<!--android:endColor="#FF0000"/>-->
<!--在gradient这里设置不同的颜色就会产生渐变的效果-->
<gradient
android: startColor ="#0484fa"
android: endColor ="#ff00ff" /> </shape>
</clip>
</item>
</layer-list>

  

layer_list_progress_drawable.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item
android:id="@android:id/background"
android:drawable="@drawable/shape_progressbar_bg" /> <item android:id="@android:id/progress"> <scale
android:drawable="@drawable/shape_progressbar_progress"
android:scaleWidth="100%">
<shape>
<corners android:radius="10dp" />
<!--<gradient-->
<!--android:startColor="#00FF00"-->
<!--android:centerColor="#FFFF00"-->
<!--android:endColor="#FF0000"/>-->
<!--在gradient这里设置不同的颜色就会产生渐变的效果--> <gradient
android: startColor ="#0484fa"
android: endColor ="#ff00ff" /> </shape>
</scale>
</item>
</layer-list>

  

效果如下图:

 

参考于:https://www.jianshu.com/p/c8193ba61195

Android 自定义水平进度条的圆角进度的更多相关文章

  1. 我的Android进阶之旅------>Android自定义View实现带数字的进度条(NumberProgressBar)

    今天在Github上面看到一个来自于 daimajia所写的关于Android自定义View实现带数字的进度条(NumberProgressBar)的精彩案例,在这里分享给大家一起来学习学习!同时感谢 ...

  2. 微信小程序 progress 进度条 内部圆角及内部条渐变色

    微信小程序progress进度条内部圆角及渐变色 <view class="progress-box"> <progress percent="80&q ...

  3. Axure教程:滑动进度条、圆形进度环的复杂交互效果实现方法

    滑动条.进度条.进度环,是产品原型中比较常见的进度展示功能.今天笔者分享的是使用Axure原型工具实现两种进度展示功能中相对复杂的交互效果. 效果一.可拖动.可显示进度值.可计算多个页面均值的滑动进度 ...

  4. 超赞的CSS3进度条 可以随进度显示不同颜色

    原文:超赞的CSS3进度条 可以随进度显示不同颜色 现在的WEB已经不是以前的WEB了,传输更大的数据量,有着更加复杂的计算,这就需要利用进度条来提高用户体验,必要时可以让用户耐心等待,不至于因操作卡 ...

  5. Xamarin XAML语言教程使用属性设置进度条的当前进度

    Xamarin XAML语言教程使用属性设置进度条的当前进度 在图12.19~12.21中我们看到的是没有实现加载的进度条,即进度条的当前进度为0,如果开发者想要修改当前进度,可以使用两种方式:一种是 ...

  6. MFC读写.txt文件时进度条显示实时进度

    整体实现方式:先获得文件长度,然后用每次读取的长度,计算出完成的百分比,用百分比的值设置进度条. 一.MFC进度条 Progress Control 相关函数 1. create() --创建Prog ...

  7. Android 梯形进度条、下载进度条;

    额,Gif有点卡: 梯形.矩形.圆角.背景色.前景色.进度条中的文字都可以改: <?xml version="1.0" encoding="utf-8"? ...

  8. Android自定义Seekbar拖动条式样

    SeekBar拖动条可以由用户控制,进行拖动操作.比如,应用程序中用户需要对音量进行控制,就可以使用拖动条来实现. 1.SeekBar控件的使用 1.1SeekBar常用属性 SeekBar的常用属性 ...

  9. CSS实现进度条和订单进度条

    最近半个月为了期末考试,可要了学渣我半瓶血啊!今天本该好好复习的,可是状态不好,就随便找点乐子玩一玩,于是乎就想起之前面试时面试官给的一道题(见标题),那就弄点简单的小玩意给自己洗洗脑咯. 简单地效果 ...

随机推荐

  1. netcore中使用grpc

    简介 grpc是由google公司开发的一个高性能.开源和通用的RPC框架,采用HTTP/2通信. 1.gRPC的传输使用http/2支持双向流. 2.支持多语言,例如java.go.php.net. ...

  2. Python面试题分享——图迹信息科技

    本帖最后由 逆风TO 于 2019-5-23 14:25 编辑 公司名称:西安图迹信息科技有限公司 公司地址:锦业路69号创业研发园瞪羚谷A座9层 主营概况:2013年成立,大数据应用工程中心,为五大 ...

  3. LG1337 [JSOI2004]平衡点 / 吊打XXX 模拟退火

    问题描述 LG1337 题解 模拟退火模板 记住概率公式: \(exp(\frac{dealt}{T}) \times rand \ge R_A^ND^M_AX\) zzk太欧了,我交了一版没过他来了 ...

  4. Python高级应用程序设计任务要求

    Python高级应用程序设计任务要求 用Python实现一个面向主题的网络爬虫程序,并完成以下内容:(注:每人一题,主题内容自选,所有设计内容与源代码需提交到博客园平台) 一.主题式网络爬虫设计方案( ...

  5. MySQL实战45讲学习笔记:第三十九讲

    一.本节概况 MySQL实战45讲学习笔记:自增主键为什么不是连续的?(第39讲) 在第 4 篇文章中,我们提到过自增主键,由于自增主键可以让主键索引尽量地保持递增顺序插入,避免了页分裂,因此索引更紧 ...

  6. QListWidget QListView QListWidgetItem样式设置

    两种方式都可以,一个通用,一个具体 //具体 QListWidget#listWidget_param::Item:hover, QListWidget#listWidget_param::Item: ...

  7. 腾讯微视:向前一步是悲壮,向后一步是绝望zz

    “换做以往的任何一场战争,微博之战.搜索之战和电商之战——大量投入但始终不见效果,打到现在腾讯肯定已经交牌了.微视的不同之处在于,它有些悲壮,因为这是腾讯最不想交出的一张牌.” 文 | <财经& ...

  8. 大话设计模式Python实现-模板方法模式

    模板方法模式(Template Method Pattern):定义一个操作中的算法骨架,将一些步骤延迟至子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 下面是一个模 ...

  9. python-2-条件判断

    前言 python3当中的条件语句是非常简单简洁的,说下这两种:if 条件.while 条件. 一.if 条件语句 1.if 语句: # 如果条件成立,打印666 if True: print(666 ...

  10. 联邦学习PySyft

    Steps involved in the Federated Learning Approach The mobile devices download the global ML model Da ...