资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

Android条纹进度条的实现(调整view宽度仿进度条)-创新互联

前言

专业领域包括成都做网站、成都网站设计、成都商城网站开发、微信营销、系统平台开发, 与其他网站设计及系统开发公司不同,创新互联的整合解决方案结合了帮做网络品牌建设经验和互联网整合营销的理念,并将策略和执行紧密结合,为客户提供全网互联网整合方案。

本文主要给大家介绍了关于Android条纹进度条(调整view宽度仿进度条)的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧

方法如下:

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

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

如果用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());
 }
}

文章名称:Android条纹进度条的实现(调整view宽度仿进度条)-创新互联
链接地址:http://cdkjz.cn/article/dpseii.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220