当我尝试从黑色更改屏幕颜色时,我使用命令drawARGB一次,我打算保持我问的那种颜色,其他图纸将出现在它上面,但它只显示一次,对于分裂,再次变黑......
这里是代码,如果你想知道一切正常,除了drawARGB ......
这是动态壁纸的一部分。
public void drawFrame() {
// TODO Auto-generated method stub
c = null;
try {
c = holder.lockCanvas();
if (c != null) {
// draw something
height = c.getHeight();
width = c.getWidth();
drawScreenColor();
frame++;
}
} finally {
if (c != null) holder.unlockCanvasAndPost(c);
}
mHandler.removeCallbacks(mDrawStrip);
if (clearToRun) {
mHandler.postDelayed(mDrawStrip, 1000 / 60);
}
}
void drawScreenColor() {
if (isFirstFrame) {
c.drawARGB(255,255,0,0);
isFirstFrame = false;
}
}
答案 0 :(得分:0)
由于你的“第一帧”代码,这种情况正在发生。
if (isFirstFrame) {
c.drawARGB(255,255,0,0);
isFirstFrame = false;
}
因此,这将执行一次,将isFirstFrame
设置为false,并且永远不会再次执行。 Canvas
的工作方式是每帧都必须重绘所有元素(前一帧中的元素不会残留)。因此,请移除isFirstFrame
检查,并将其作为drawFrame
方法中的第一个电话;随后的一切都将被绘制在最上面。