横向ProgressBar自定义布局

由于项目需求,简单查询了下横向ProgressBar自定义布局的实现,列出简单的实现步骤,后续补充其他更详细的属性

一、首先定义一个layer-list的drawable(命名:shape_progressbar.xml)

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!--progressbar的背景颜色-->
<item android:id="@android:id/background">        
        <shape>            
            <corners android:radius="5dip" />            
                <gradient                
                      android:startColor="@color/bar_color"                
                      android:centerColor="@color/bar_color"                
                      android:endColor="@color/bar_color"                
                      android:angle="270"                
                />        
          </shape>    
</item>    
<!--progressBar的缓冲进度颜色-->
<item android:id="@android:id/secondaryProgress">        
    <clip>            
        <shape>                
             <corners android:radius="5dip" />                
                   <gradient                    
                         android:startColor="@color/yellow"                    
                         android:centerColor="@color/yellow"                   
                         android:endColor="@color/yellow"                    
                         android:angle="270"                    
                   />           
        </shape>        
    </clip>    
</item>    
<!--progressBar的最终进度颜色-->
<item android:id="@android:id/progress">        
    <clip>            
        <shape>                
              <corners android:radius="5dip" />                
                  <gradient                    
                      android:startColor="@color/yellow"                    
                      android:centerColor="@color/yellow"                    
                      android:endColor="@color/yellow"                    
                      android:angle="270"                    
                  />            
       </shape>        
      </clip>    
</item>
</layer-list>

二、第一步的drawable文件应用再styles中

<!--style属性-->
<style name="StyleProgressBarMini" parent="Widget.AppCompat.ProgressBar.Horizontal">    
    <item name="android:maxHeight">50dp</item>    
    <item name="android:minHeight">10dp</item>    
    <item name="android:indeterminateOnly">false</item>    
    <item name="android:progressDrawable">@drawable/shape_progressbar</item>
</style>

三、使用style文件

<ProgressBar    
    android:id="@+id/progressBar"    
    style="@style/StyleProgressBarMini"    
    android:layout_width="match_parent"    
    android:layout_height="wrap_content"    
    android:layout_marginLeft="@dimen/dimen_50px"    
    android:layout_marginRight="@dimen/dimen_50px"    
    android:layout_marginTop="@dimen/dimen_20px"    
    android:max="100"    
    android:progress="30"    
/>
结果图.png
                                                              欢迎留言
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,838评论 25 709
  • 关键词:道德的界限 根据作者表述,人类对作弊或在金钱上不诚实是有界限和规律可循的。 在有机会做弊且没有触犯人生自我...
    Oo呢喃oO阅读 658评论 0 0
  • 阅读:第四部分(12-14章及结尾) @2017/4/26 第12章 伟大的人人时代有人以为普通人在业余时间办不成...
    冰洛洛阅读 198评论 0 0
  • #幸福是需要修出来的~每天进步1%~幸福实修11班~学号10#贾双红 20171101(65/100) 【幸福三朵...
    幸福实修贾双红阅读 160评论 0 0
  • 最近有十几天没有写感赏了,因为孩子不在身边,觉得没有什么可感赏的。今天又一次朗读爱叛逆课程,老师说也可以感赏自己么...
    心想事就成阅读 221评论 0 0