ProgressBar大家可能项目中都会用到,但是大部分都是根据UI给的符合项目主题的自定义形式的;

下面就是我们项目中一个显示学习进度的横向ProgressBar;

可以看到四个角都是圆角的,本人首先想到的是自定义,但是会发现四个角总是不能够实现,要不左侧会被切成直角,要不进度内侧会被切成直角,也是从网上查找分析,最终实现如下:

结合网上大神的示意,在此作个笔记,方便之后遇到直接拿来用,节省时间.

借鉴ProgressBar 进度条的进度两端是圆角的方法

但是根据自定义的shape 或者是 layer-list却总是很难做到,几乎都是被clip成了直角的样子如上;

为什么是直角的?原因就是被clip给切了,所以我们不能够用clip,而要使用scale这个标签。而上面链接给出的解答是定义一个.9的图片就能满足要求,由于我们这里是纯色的一个进度,所以没有必要通过再制作一个.9的图片,而只需要通过同样的方法引用我们定义的一个shape就可以了;

好了,先上图(自动忽略边框,实际是没有)

xml

<ProgressBarandroid:id="@+id/pb_lesson_progress"style="?android:attr/progressBarStyleHorizontal"android:layout_width="200dp"android:layout_height="20dp"android:max="100"android:progress="40"android:progressDrawable="@drawable/layer_list_lesson_progress_bar" />

/drawable/layer_list_lesson_progress_bar.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"><shape><corners android:radius="20dp"/><solid android:color="#FF45baef"/></shape></item><item android:id="@android:id/secondaryProgress"><scale android:scaleWidth="100%"><shape><corners android:radius="20dp"/><solid android:color="#FF11ce33"/></shape></scale></item><item android:id="@android:id/progress"><!--<clip><shape><corners android:topRightRadius="20dp"android:bottomRightRadius="20dp"/><solid android:color="#FF009898"/></shape></clip>--><scale android:scaleWidth="100%"android:drawable="@drawable/shape_lesson_progress_bar"   /></item></layer-list>

drawable/shape_lesson_progress_bar

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><!-- solid指定形状的填充色,只有android:color一个属性 --><solid android:color="#ffb644" /><!-- padding设置内容区域离边界的间距 --><!-- corners设置圆角,只适用于rectangle --><corners android:radius="20dp"/></shape>

Android 自定义ProgressBar横向圆角相关推荐

  1. Android 自定义View 圆形圆角图片

    [Android 自定义View 圆形圆角图片] 基于Xfermode 实现 1.概述 在很久以前也写过一个利用Xfermode 实现圆形.圆角图片的(Android 完美实现图片圆角和圆形(对实现进 ...

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

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

  3. android背景颜色动态修改,Android自定义TextView带圆角及背景颜色(动态改变圆角背景颜色)...

    最近根据项目需求自定义了一个TextView控件,主要用来做状态的标识,比如一个订单状态有各种,当然了这种设置在Android中可以直接用xml文件来处理,但是对于xml文件太过于麻烦,针对不同的颜色 ...

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

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

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

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

  6. Android自定义progressBar

    通过继承系统ProgressBar实现 效果图 实现 HorizontalProgressBarWithNumber 自定义属性 <?xml version="1.0" en ...

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

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

  8. android自定义listview实现圆角

    在项目中我们会经常遇到这种圆角效果,因为直角的看起来确实不那么雅观,可能大家会想到用图片实现,试想上中下要分别做三张图片,这样既会是自己的项目增大也会增加内存使用量,所以使用shape来实现不失为一种 ...

  9. Android 自定义 HorizontalScrollView 横向滑动效果

    自从Gallery被谷歌废弃以后,Google推荐使用ViewPager和HorizontalScrollView来实现Gallery的效果.的确HorizontalScrollView可以实现Gal ...

最新文章

  1. 5G NGC — 云原生的 5G 核心网架构演进
  2. 【深度学习】——如何处理输入图像大小不一样的情况
  3. junit rule_Tomcat上下文JUnit @Rule
  4. 第二十期:核心交换机的链路聚合、冗余、堆叠、热备份
  5. 终于有人把数据、信息、知识讲明白了
  6. 用实例的方式去理解storm的并发度
  7. mysql分组查询统计求和
  8. Android 之父公司宣布关闭:亚马逊、腾讯等大厂投资的 3 亿美元“打水漂”了...
  9. 正交表测试与混合正交表工具
  10. 荣耀总裁赵明揭秘华为薪酬制度:不看资历,只看贡献
  11. php 自定义字段erp,在SuiteCRM中创建自定义字段类型
  12. 基于445端口漏洞的入侵测试
  13. [linux学习笔记] GCC环境安装问题
  14. 表达式计算器 java代码_Java实现简单的表达式计算器功能示例
  15. 宽温Android触摸屏,7寸刷卡工控一体机支持IC/ID卡安卓触摸屏
  16. MyCat 的入门和放弃
  17. pipe管道实现进程间的通信
  18. 【软件工程实践】Hive研究-Blog5
  19. iOS APP发布---版本配置完整流程
  20. EXCEL考勤表自动求出每天工作总时长

热门文章

  1. 烟台初中计算机会考,烟台初中生迎来会考科目将折算计入中考总分
  2. three.js使用CubeCamera创建反光效果,动态环境贴图实现,立方体全景贴图(vue中使用three.js83)
  3. day6 代码发送邮件总结
  4. 艾欧尼亚服务器维护,艾欧尼亚大区服务器即将升级,你还在为排位烦恼吗?
  5. java怎么引入矢量图标库_java web开发怎样调用visual graph的图库
  6. 网络图标显示红叉叉的情况
  7. 引入的Service为null问题
  8. IoT方案|机智云智慧家电互联互通解决方案
  9. 国二c语言大纲,C语言国二考试大纲.doc
  10. Vue3的动态组件和异步组价