网上纯色的渐变色的进度条已经很多了,近来UI需要一个类游戏的进度条,这个,

这个用纯色做实在难以实现,那就用裁剪图片实现吧,需要这么几步。

定义进度条样式:

    <style name="myprogressbar"><item name="android:indeterminateOnly">false</item><item name="android:progressDrawable">@drawable/progressbar_layer</item><item name="android:indeterminateDrawable">@android:drawable/progress_indeterminate_horizontal</item><item name="android:minHeight">23dip</item><item name="android:maxHeight">30dip</item></style>

indeterminateOnly表示进度值是否确定,true表示不确定(这时候是波浪的动画),false表示确定,对于我们的需求来说只是确定的所以是false;
indeterminateDrawable指定波浪动画的anim文件,如果上面一个属性值是false,那么这个的作用就不大了;
progressDrawable是展示确定值的进度条,这是我们想要的;
然后就是定义我们的drawable文件,res/drawable/progressbar_layer:

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"><item android:id="@android:id/background"><bitmap android:src="@drawable/temp_empty" /></item><item android:id="@android:id/secondaryProgress"><clip><shape><corners android:radius="1dip" /><gradientandroid:angle="270"android:centerColor="#80ffb600"android:centerY="0.75"android:endColor="#a0ffcb00"android:startColor="#80ffd300" /></shape></clip></item><item android:id="@android:id/progress"><clip><bitmap android:src="@drawable/temp_fill" /></clip></item></layer-list>

注意上面三组item的id的设定,要照上面定义,第一组item是定义进度条的背景色;第二组的item是用渐变色定义的二级进度条;第三组item是一级进度条,第一第二组item是我们需要的分别是两张图片,图片使用<clip>限制的。
最后是使用,

<ProgressBarandroid:id="@+id/progress_sound_correct"style="@style/mprogressbar"android:layout_width="283dp"android:layout_height="wrap_content"android:layout_marginLeft="11dp"android:max="100"android:progress="30"/>

对应的效果

另外:
ClipDrawable,这个Drawable类的用法可能更加直观一些。
定义res/drawable/clip_img.xml

<?xml version="1.0" encoding="utf-8"?>
<clip xmlns:android="http://schemas.android.com/apk/res/android"android:clipOrientation="horizontal"android:drawable="@drawable/ic_launcher"android:gravity="left"/>

clipOrientation表示裁剪是横向的还是竖向的;
drawable是裁剪的对象;
gravity表示裁剪那一部分,左、右、还是中间;
引用drawable

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><ImageViewandroid:id="@+id/iv_clip"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:src="@drawable/clip_img" /><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/iv_clip"android:layout_centerInParent="true"android:src="@drawable/ic_launcher" />
</RelativeLayout>

设置裁剪比例

ImageView ivClip = (ImageView) findViewById(R.id.iv_clip);ClipDrawable clipDrawable = (ClipDrawable) ivClip.getDrawable();clipDrawable.setLevel(40 * 100);

setLevel的取值是0~10000,表示被裁剪出来的部分所占比例,如果值是10000那就是被裁剪对象完全展示

下面一个是原图,上面是被裁剪过的,显示左边40%。
这种办法也可以做进度条,只需要给布局文件加上一个合适的背景,再配上被裁剪的图片,那就是进度条;要是想让进度条有动效可以加个计时器在固定时间内匀速的设置增量,把设置后的值setLevel,这样就动起来了,有兴趣的可以试下。

Android Clip用法——自定义进度条相关推荐

  1. android自定义进度条渐变色View,不使用任何图片资源

    最近在公司,项目不是很忙了,偶尔看见一个兄台在CSDN求助,帮忙要一个自定义的渐变色进度条,我当时看了一下进度条,感觉挺漂亮的,就尝试的去自定义view实现了一个,废话不说,先上图吧!     这个自 ...

  2. Android仿华为系统升级进度条的实现

    目录 前言: 实现步骤: 1.用DashPathEffect给paint加上虚线效果 2.画出进度条 3.绘制文字 4.加入动画效果 前言: 之前用华为Android系统的时候总是会想到这种虚线进度条 ...

  3. android ProgressBar 自定义进度条颜色

    android 自定义进度条颜色 先看图 基于产品经理各种自定义需求,经过查阅了解,下面是自己对android自定义进度条的学习过程! 这个没法了只能看源码了,还好下载了源码, sources\bas ...

  4. android 自定义 进度条 旋转,Android_Android ProgressBar进度条使用详解,ProgressBar进度条,分为旋转进 - phpStudy...

    Android ProgressBar进度条使用详解 ProgressBar进度条,分为旋转进度条和水平进度条,进度条的样式根据需要自定义,之前一直不明白进度条如何在实际项目中使用,网上演示进度条的案 ...

  5. android自定义进度条_Android中的自定义进度栏

    android自定义进度条 Custom progress bar in android application gives it a personal touch. In this tutorial ...

  6. Android 各种自定义进度条Progressbar

    Android 自定义进度条 Progressbar 控件集合 关于我,欢迎关注 博客:ccapton(http://blog.csdn.net/ccapton) 微信:Ccapton Github ...

  7. android自定义圆角进度条,Android自定义进度条的圆角横向进度条实例详解

    1.本文将向你介绍自定义进度条的写法,比较简单,但还是有些知识点是需要注意的: invalidate()方法 RectF方法的应用 onMeasure方法的应用 2.原理 画3层圆角矩形,底层为黑色, ...

  8. android进度条脚本,GEE引擎自定义进度条和自定义属性示例脚本..

    GEE引擎自定义进度条和自定义属性示例脚本.. [@main] #SAY \\ 自定义装备进度条 \\ 自定义装备属性 \\ ;==================================== ...

  9. Android进度条,自定义进度条,显示百分比

    昨天搞了一个圆形加载框 传送门,睡了一晚重温一下,今天搞一个条形加载框巩固一下,比圆形要简单点,两个矩形即可,一个总的,一个加载进度的,然后添加一个文字在后面,先上图,后上代码,讲解在注释里直观又方便 ...

最新文章

  1. 费用流:最大费用最大流和最小费用最大流(模板)
  2. 大剑无锋之不都说面试不问mybatis,为什么我被虐了。。。【mybatis面试题】
  3. 使用putty连接linux
  4. Tomcat上下文JUnit @Rule
  5. 下边框_css基础篇07--边框样式
  6. Markdown中如何加入上标、下标?
  7. 我们用transformer干啥?
  8. matlab 输出一行字,MATLAB输出结果的格式设置
  9. 全国职业院校技能竞赛网络安全竞赛数据取证与分析思路分析
  10. adobe 不适应 Max to分屏软件的修改
  11. AtCoder Beginner Contest 264笔记
  12. 【Python】在Windows 10 中,安装django-bootstrap-modal-forms
  13. pyecharts对于经纬度_pyecharts绘制geo地图
  14. 数学建模学习(7):分支结构与循环结构详解
  15. JFS与JFS2的区别
  16. Error running ‘JeeplusWebApplication‘: Command line is too long. Shorten command line for JeeplusWeb
  17. HTTP请求的响应头部Vary的理解
  18. excel毫秒、微妙运算
  19. Markdown出题模板(YZOJ-)
  20. Subversion Edge:下载官方旧版的Subversion Edge

热门文章

  1. 02.查询并杀死僵尸进程
  2. MATLAB Jacobi迭代法和G-S迭代法
  3. C++生成标准正态分布随机数,default_random_engine, uniform_distribution,normal_distribution
  4. python不换行输出具体举例,Python换行与不换行的输出实例
  5. “唯芯片论”不可取,手机竞争背后仍是产业链博弈
  6. 白银现货行情的影响因素
  7. 迄今为止最浮夸的代码编辑器插件
  8. Unity lua内存泄漏与性能检测
  9. acwing 1223.最大比例(更相减损术)
  10. HTML5的aside标签怎么用?