Android编程之效果外观一致的进度条
白羽 2018-07-24 来源 :网络 阅读 1456 评论 0

摘要:本文将带你了解Android编程之效果外观一致的进度条,希望本文对大家学Android有所帮助


MaterialProgressBar是一款针对Android 4.0以上的Material Desgin风格的进度条。
为什么是MaterialProgressBar?

和Android 4.0以上一致的外观。
真正的兼容所有版本。
能够去除框架进度条的内在填充。
能够隐藏框架水平条进度的轨迹。

预览
Android 4.4.4

三星手机 Android 5.0.1(原生实现未着色)

Android 5.1.1

示例应用
整合
Gradle:

  
  
   
   
   
   compile 'me.zhanghai.android.materialprogressbar:library:1.1.7'
   
    
     
    
     1
    
      compile 'me.zhanghai.android.materialprogressbar:library:1.1.7'
     
    
   
  


使用
你可以简单的使用 MaterialProgressBar 控件,
使用控件
MaterialProgressBar 可以很方便的替换到常规的进度条,并且使用常规进度条的所有的样式和属性。 例如,创建一个不确定的水平MaterialProgressBar:

  
  
   
   XHTML
   
   <me.zhanghai.android.materialprogressbar.MaterialProgressBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:indeterminate="true"
    app:mpb_progressStyle="horizontal"
    style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal" />
   
    
     
    
     123456
    
      <me.zhanghai.android.materialprogressbar.MaterialProgressBar    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:indeterminate="true"    app:mpb_progressStyle="horizontal"    style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal" />
     
    
   
  

为了让你的进度条在所有的版本采取正确和一致的尺寸,你可以使用这个库的一种样式。里面的诀窍是使用使用最大最小的宽高来控制尺寸。

Widget.MaterialProgressBar.ProgressBar
Widget.MaterialProgressBar.ProgressBar.Horizontal
更多的尺寸和无填充样式可以参考style.xml

可用的自定义属性:

app:mpb_progressStyle:进度条的样式:circular (圆形)和horizontal(水平) 默认是 circular (圆形)
app:mpb_setBothDrawables:设置进度条是确定和不确定或者都可以 ,暂时还不支持确定的圆形进度条,默认是false。
app:mpb_useIntrinsicPadding:设置是否需要内部边距,默认是true
app:mpb_showTrack: 设置进度条是否有轨迹,默认为true的是水平进度条,其他的都是false

支持android:tint和app:mpb_tintMode 来着色进度条。默认的颜色是?colorControlActivated,默认的着色模式是src_in
详细的例子,你可以参考简单的布局,在那里,你可以找到例子,如删除进度条填充或轨迹。
使用Drawable
材料设计是向后兼容Android 4.0 (API 14),所以你可以直接创建和设置你的进度条

HorizontalProgressDrawable
IndeterminateHorizontalProgressDrawable
IndeterminateProgressDrawable

例如:给进度条设置IndeterminateHorizontalProgressDrawable属性

  
  
   
   Java
   
   progressBar.setIndeterminateDrawable(new IndeterminateHorizontalProgressDrawable(this));
   
    
     
    
     1
    
      progressBar.setIndeterminateDrawable(new IndeterminateHorizontalProgressDrawable(this));
     
    
   
  

这个库还可以直接在xml中设置一个样式
例如:定义一个不确定的水平进度条

  
  
   
   XHTML
   
   <ProgressBar
            android:id="@+id/indeterminate_horizontal_progress"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:indeterminate="true"
            style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal" />
   
    
     
    
     123456
    
      <ProgressBar            android:id="@+id/indeterminate_horizontal_progress"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:indeterminate="true"            style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal" />
     
    
   
  

别忘了创建和设置drawable。
你也可以通过setshowtrack()和setuseintrinsicpadding()来自定义 色彩的相关方法setTint(),setTintList()和setTintMode()你也可以直接使用它们。但要记得让这些图片作为他们的实际类型或TintableDrawable因为虚拟机在传统的平台可能找不到Drawable的相关方法。
如果你想兼容 API level < 18,在这里你需要解决一个画布局限,使用这种自动的materialprogressbar。
详细示例,你可以参考onCreate()方法在 MainActivity和他的布局main_activity.xml
混淆
这个库的AAR已经包括混淆器配置文件,ObjectAnimator可以正常使用
旧版本
ICS以前的版本,既不支持Support v4也不支持AppCompat v7的动画,并且NineOldAndroids这个库已经过时了,人们现在使用minSdkVersion="14",所以不支持比ICS更老的版本。
协议
Apache OpenNLP遵循Apache 2.0开源协议发布。
开源地址:https://github.com/DreaminginCodeZH/MaterialProgressBar    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved