相关代码请参阅: https://github.com/RustFisher/aboutView/blob/master/app/src/main/java/com/rust/aboutview/activity/RoundCornerActivity.java

美工同学指定了一个进度条样式

这斑斓的进度条,如果要自己画实在是劳民伤财。于是请美工切了一张素材。

如果用shape或者.9图片不太好处理这个条纹。转变思路,放置2张图片。一张作为背景(底,bottom),一张作为进度条图片(cover)。

进度改变时,改变上面图片的宽度。

这就要求上面的图片是圆角的。自定义ImageView,调用canvas.clipPath来切割画布。 public class RoundCornerImageView extends android.support.v7.widget.AppCompatImageView { private float mRadius = 18; private Path mClipPath = new Path(); private RectF mRect = new RectF(); public RoundCornerImageView(Context context) { super(context); } public RoundCornerImageView(Context context, AttributeSet attrs) { super(context, attrs); } public RoundCornerImageView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public void setRadiusDp(float dp) { mRadius = dp2px(dp, getResources()); postInvalidate(); } public void setRadiusPx(int px) { mRadius = px; postInvalidate(); } @Override protected void onDraw(Canvas canvas) { mRect.set(0, 0, this.getWidth(), this.getHeight()); mClipPath.reset(); // remember to reset path mClipPath.addRoundRect(mRect, mRadius, mRadius, Path.Direction.CW); canvas.clipPath(mClipPath); super.onDraw(canvas); } private float dp2px(float value, Resources resources) { return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, value, resources.getDisplayMetrics()); } }

每次绘制都切割一次圆角。记得调用Path.reset()方法。

回到我们要的进度条。布局文件中放置好层叠的图片。

需要在代码中动态地改变cover的宽度;dialog中提供如下方法改变LayoutParams public void updatePercent(int percent) { mPercent = percent; mPercentTv.setText(String.format(Locale.CHINA, "%2d%%", mPercent)); float percentFloat = mPercent / 100.0f; final int ivWidth = mBotIv.getWidth(); RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) mProgressIv.getLayoutParams(); int marginEnd = (int) ((1 - percentFloat) * ivWidth); lp.width = ivWidth - marginEnd; mProgressIv.setLayoutParams(lp); mProgressIv.postInvalidate(); }

显示出dialog并传入进度,就可以看到效果了。

这只是实现效果的一种方法,如果有更多的想法,欢迎和我交流~

android 进度条图标方形_Android - 条纹进度条实现,调整view宽度仿进度条相关推荐

  1. android 动态改变进度条,Android条纹进度条的实现(调整view宽度仿进度条)

    Android条纹进度条的实现(调整view宽度仿进度条) 发布时间:2020-10-03 16:14:24 来源:脚本之家 阅读:89 作者:RustFisher 前言 本文主要给大家介绍了关于An ...

  2. android横向进度条宽度,Android - 条纹进度条实现,调整view宽度仿进度条

    Android 自定义UI custom view 美工同学指定了一个进度条样式 这斑斓的进度条,如果要自己画实在是劳民伤财.于是请美工切了一张素材(样例). 如果用shape或者.9图片不太好处理这 ...

  3. android 进度条图标方形_android进度条的样式

    android 进度条的样式 例1:(默认样式(中等圆形)) Xml代码 android:id="@+id/progressBar1" android:layout_width=& ...

  4. android 进度条图标方形_android 进度条的样式

    android 进度条的样式 例1:(默认样式(中等圆形)) android:id="@+id/progressBar1" android:layout_width="w ...

  5. android 按钮带图标 阴影_android中带图标的按钮(ImageButton)怎么用

    展开全部 除了Android系统自带的Button按钮以外,还提供了带图标的按钮ImageButton 要制作带图标的按钮,首先要在布局62616964757a686964616fe58685e5ae ...

  6. android 按钮带图标 阴影_Android Material Design系列之FloatingActionButton和Snackbar

    今天主讲的Material Design系列的两个控件都不难,所以一起讲了,分别是FloatingActionButton和Snackbar.这个系列都是主讲的Material Design风格的控件 ...

  7. android 按钮带图标 阴影_Android实现图片添加阴影效果的2种方法

    给图片添加阴影效果,这是很常见的需求.第一种方法是自定义drawable,使用layer-list定义两个图片,代码如下: show_view.xml: android:top="5dp&q ...

  8. Android自定义view之圆形进度条

    本节介绍自定义view-圆形进度条 思路: 根据前面介绍的自定义view内容可拓展得之: 1:新建类继承自View 2:添加自定义view属性 3:重写onDraw(Canvas canvas) 4: ...

  9. android自定义view 模仿win10进度条

    android自定义view 模仿win10进度条 本文已授权微信公众号:鸿洋(hongyangAndroid)在微信公众号平台原创首发. PS:有朋友反映动画无法播放,那是因为PathMeasure ...

最新文章

  1. PyTorch环境下对BERT进行Fine-tuning
  2. SQL Server如何链接到 Oracle并查询其中的数据?并实现做接口
  3. 第六节:用audio标签打造一个属于自己的HTML5音乐播放器
  4. python模块typing的作用
  5. ajax----serialize()方法注意事项
  6. gitlab工作流程简介
  7. CentOS下安装Docker-CE
  8. endless 题解
  9. Apache 重写规则及参数详解,入门看这个就够了
  10. 苹果CMS海螺模板4.0修复版带后台 附安装教程
  11. Bellman-Ford(最短路)
  12. mac下chrome导入证书
  13. 2023最新!QQ接入ChatGpt!!!保姆级教程
  14. css中的vw/vh与%
  15. python本科毕设_关于本科毕设选题请教问题
  16. 【费曼学习法】史上最强学习方法,无论是给自己还是给孩子,都非常值得尝试
  17. SpringBoot——JPA的使用、构建restful风格的JPA
  18. 用顺序表创建学生信息花名册
  19. 怎么使用python实现大数据应用
  20. bam/sam格式说明--转载

热门文章

  1. mac下ssh免密登陆远程服务器(linux)
  2. 数据库之MySQL补充
  3. [CQOI2017]小Q的棋盘
  4. 【咸鱼教程】置于后台停止计时,修改引擎源码解决。
  5. 在写代码过程中遇到的问题,以及当时的解决方法(如实记录)
  6. 梦想还是要有的 万一实现了呢
  7. Qt GUI@学习日志
  8. Xcode里-ObjC, -all_load, -force_load
  9. CentOS 安装中文语言包 教程
  10. poj1094Sorting It All Out(拓扑排序)