surfaceview刷新问题

顾小林 2013-02-26 04:50:05
public void drawLine(){
Log.v("shenwenjian","drawLine exit:"+exit);


if(exit == NOTEXIT){
exit = EXIT;
Canvas canvas = mSurfaceHolder.lockCanvas();
if(mNotExitCanvas == null){
mNotExitCanvas = new Canvas();
}
Paint p = new Paint();
p.setAntiAlias(true);
p.setColor(Color.RED);
p.setStyle(Style.STROKE);
mWidth = getWidth();
mHeight = getHeight();
// draw 行
canvas.drawLine(0, mHeight/3, mWidth, mHeight/3, p);
canvas.drawLine(0, mHeight/3*2, mWidth, mHeight/3*2, p);
// draw 列
canvas.drawLine(mWidth/3, 0, mWidth/3, mHeight, p);
canvas.drawLine(mWidth/3*2, 0, mWidth/3*2, mHeight, p);

mSurfaceHolder.unlockCanvasAndPost(canvas);
//postInvalidate();
Log.v("shenwenjian","drawLine exit:"+exit);
} else{
exit = NOTEXIT;
Canvas canvas = mSurfaceHolder.lockCanvas();
Paint p = new Paint();
p.setAntiAlias(true);
p.setColor(Color.TRANSPARENT);
p.setStyle(Style.STROKE);
mWidth = getWidth();
mHeight = getHeight();
// draw 行
canvas.drawLine(0, mHeight/3, mWidth, mHeight/3, p);
canvas.drawLine(0, mHeight/3*2, mWidth, mHeight/3*2, p);
// draw 列
canvas.drawLine(mWidth/3, 0, mWidth/3, mHeight, p);
canvas.drawLine(mWidth/3*2, 0, mWidth/3*2, mHeight, p);

mSurfaceHolder.unlockCanvasAndPost(canvas);
}
}

先贴代码。我的这个控件继承surfaceview。 完成功能是,点击一个do_button surfaceview画网格,再点击一下cancel_button surfaceview的网格去掉。
这段代码在android 4.0 上执行没有问题,能达到预想的效果。
但是在android 4.2 上 执行 出现了如下描述。第一次 点击 do_button surfaceview 画网格。
第二次点击 cancel_button surfaceview 网格消失 第三次点击 do_button surfaceview 画网格
第四次 cancel_button surfaceview 网格不消失。

搞了半天也没弄出结果来 求大神指点
...全文
116 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
顾小林 2013-02-26
  • 打赏
  • 举报
回复
顶一个!!!!!!!!!!!!!!

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧