android 进度条图标方形_Android View : 自定义方形 进度条

腾讯的狼人杀。玩家发言在矩形的头相框,动态展示倒计时进度条,感觉很好玩,参考网上一些做法:

最终可以实现效果:

Paste_Image.png

可以控制 修改颜色显示 ,是否显示小球等:

先给出demo地址:

链接: https://pan.baidu.com/s/1bp8NbGz 密码: 75sg

主界面大体上就是通过handler 发送消息更新ui的思想,布局也比较简单。

重点是绘制:

import android.annotation.TargetApi;

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.Path;

import android.graphics.drawable.shapes.RectShape;

import android.util.AttributeSet;

import android.util.Log;

import android.view.View;

/**

* Created by Administrator on 2017/8/26.

*/

public class SquareProgress extends View {

private String TAG = "SquareProgress";

//各个画笔的颜色

private int maxColor = Color.YELLOW;//总进度条颜色为灰色

private int curColor = Color.GREEN;//当前进度条颜色为蓝色

private int dotColor = Color.RED;//进度条前端的小圆点为红色

private float allLength;//进度条的总长度

private int maxProgress = 60;//总的进度条长度为100(可改变)

private int curProgress = 0;//当前进度为30(可改变)

private Paint curPaint;//当前进度条的画笔

private Paint maxPaint;//总进度条的画笔

private Paint dotPaint;//进度条前端小圆点的画笔

private int width;//整个view的宽度,(包括paddingleft和paddingright)

private int height;//整个view的高度,(包括paddingtop和paddingbottom)

private float maxProgressWidth;//整个进度条画笔的宽度

private float curProgressWidth;//当前进度条画笔的宽度

private float dotDiameter;//进度条顶端小圆点的直径

private boolean canDisplayDot = true;//是否显示小圆点

private Path curPath;//当前进度条的路径,(总的进度条的路径作为onDraw的局部变量)

private float proWidth;//整个进度条构成矩形的宽度

private float proHeight;//整个进度条构成矩形的高度

private float dotCX;//小圆点的X坐标(相对view)

private float dotCY;//小圆点的Y坐标(相对view)

public SquareProgress(Context context) {

super(context);

initView();

}

public SquareProgress(Context context, AttributeSet attrs) {

super(context, attrs);

initView();

}

public SquareProgress(Context context, AttributeSet attrs, int defStyleAttr) {

super(context, attrs, defStyleAttr);

initView();

}

@TargetApi(21)

public SquareProgress(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值