java解析marc乱码,SurfaceView绘制出现的问题?

先上两张图压压惊:

如图,带虚拟键的华为手机,图片内容是用SurfaceView画出的背景和一个大圆,一个小圆(转盘),调出虚拟键进入打开正常如下图1,关闭虚拟键如下图2

bVHOkW?w=1080&h=1920

bVHOlE?w=1080&h=1920

关闭虚拟键进入打开如下图1,打开虚拟键如下图2

bVHOmB?w=1080&h=1920

bVHOmO?w=1080&h=1920

接下来是代码,个人感觉没什么问题

//初始化盘块绘制的范围

mRange = new RectF(mPadding, getMeasuredHeight()/2-mRadius/2, mPadding + mRadius, getMeasuredHeight()/2+mRadius/2);

/**

* 绘制背景

*/

private void drawBg() {

mCanvas.drawColor(Color.TRANSPARENT);

mCanvas.drawBitmap(mBackgoundBitmap,0,0,null);

mCanvas.drawBitmap(mBgBitmap, null, new Rect(mPadding/3, (getMeasuredHeight()/2-(getMeasuredWidth()-2*mPadding/3)/2),

getMeasuredWidth() - mPadding/3,

(getMeasuredHeight()/2+(getMeasuredWidth()-2*mPadding/3)/2)), null);

}

public void draw() {

try {

mCanvas = mHolder.lockCanvas();

if (mCanvas != null) {

//绘制背景

drawBg();

//绘制盘块

float tmpAngle = mStartAngle;

float sweepAngle = 360 / mItemCount;

for (int i = 0; i < mItemCount; i++) {

mArcPaint.setColor(mColors[i]);

//绘制盘块

mCanvas.drawArc(mRange, tmpAngle, sweepAngle, true, mArcPaint);

//绘制文本

drawText(tmpAngle, sweepAngle, mStrs[i]);

//绘制Icon

drawIcon(tmpAngle, mImgsBitmap[i]);

tmpAngle += sweepAngle;

}

疑问:draw()方法是只要SurfaceView没被销毁就一直在执行不断重绘的,从图片可以看出,当把虚拟键关闭的时候,drawBg()画背景和大圆盘的方法是执行了的,但是下面画转盘的代码为什么没执行?该如何解决?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值