android 双层进度条,CircularCounter 双层原形进度条效果《IT蓝豹》

CircularCounter 双层原形进度条效果

CircularCounter 双层原形进度条,根据数据的变化而增减的,支持逆向旋转。

本项目主要由CircularCounter自定义控件实现, CircularCounter extends View,

主要由如下代码画出:

@Override

protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

canvas.drawCircle(mBackgroundCenter, mBackgroundCenter,

mBackgroundRadius, mBackgroundPaint);

canvas.drawArc(mOneBounds, START_DEGREES, mOneDegrees, false, mOnePaint);

canvas.drawArc(mTwoBounds, START_DEGREES, mTwoDegrees, false, mTwoPaint);

canvas.drawArc(mThreeBounds, START_DEGREES, mThreeDegrees, false,

mThreePaint);

canvas.drawText(Integer.toString(mOneValue), mOneBounds.centerX(),

mTextPosY, mTextPaint);

canvas.drawText(mMetricText, mOneBounds.centerX(), mMetricPosY,

mMetricPaint);

}

进度值变化设置:

/*

* Setters

*

*/

/**

* Set the next values to be drawn

* @param v1

* @param v2

* @param v3

*/

public void setValues(int v1, int v2, int v3) {

if (v1 <= mRange)

mOneDegrees = Math.round(((float) v1 * 360) / mRange);

else

mOneDegrees = 360;

if (v2 <= mRange)

mTwoDegrees = Math.round(((float) v2 * 360) / mRange);

else

mTwoDegrees = 360;

if (v3 <= mRange)

mThreeDegrees = Math.round(((float) v3 * 360) / mRange);

else

mThreeDegrees = 360;

mOneValue = v1;

mSpinHandler.sendEmptyMessage(0);

}

运行效果:

%E5%BA%94%E7%94%A8%E5%AE%9D%E5%8A%A8%E6%80%81%E6%88%AA%E5%B1%8F2015101501.gif

相关代码

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值