gpt4 book ai didi

Android,canvas : How do I clear (delete contents of) a canvas (= bitmaps), 生活在surfaceView 中?

转载 作者:IT老高 更新时间:2023-10-28 13:08:01 26 4
gpt4 key购买 nike

为了制作一个简单的游戏,我使用了一个模板,该模板使用这样的位图绘制 Canvas :

private void doDraw(Canvas canvas) {
for (int i=0;i<8;i++)
for (int j=0;j<9;j++)
for (int k=0;k<7;k++) {
canvas.drawBitmap(mBits[allBits[i][j][k]], i*50 -k*7, j*50 -k*7, null); } }

( Canvas 在“run()”中定义/SurfaceView 位于 GameThread 中。)

我的第一个问题是如何清除(或重绘)整个 Canvas 以进行新布局?
其次,我怎样才能只更新屏幕的一部分?

// This is the routine that calls "doDraw":
public void run() {
while (mRun) {
Canvas c = null;
try {
c = mSurfaceHolder.lockCanvas(null);
synchronized (mSurfaceHolder) {
if (mMode == STATE_RUNNING)
updateGame();
doDraw(c); }
} finally {
if (c != null) {
mSurfaceHolder.unlockCanvasAndPost(c); } } } }

最佳答案

使用 PorterDuff 清除模式绘制透明颜色可以达到我想要的效果。

Canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR)

关于Android,canvas : How do I clear (delete contents of) a canvas (= bitmaps), 生活在surfaceView 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5729377/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com