0
我有一些位圖,我想連續顯示一個接一個,但我的代碼只顯示最後一個位圖。可以有人告訴我爲什麼會發生? 這裏是代碼在畫布上顯示位圖問題
類板延伸SurfaceView實現SurfaceHolder.Callback {
private boolean _run = false;
public Panel(Context context) {
super(context);
getHolder().addCallback(this);
_run = true;
}
@Override
public void onDraw(Canvas canvas) {
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
Log.i("Read","surfaceChanged is called");
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
Log.i("Read","surfaceCreated is called");
while (_run) {
display();
}
}
public void display() {
Canvas c;
c = null;
try {
c = getHolder().lockCanvas(null);
synchronized (getHolder()) {
onPreviewFrame();
invalidate();
c.drawColor(Color.BLACK);
c.drawBitmap(bmp, 10, 10, null);
//panel.surfaceDestroyed(panel.getHolder());
}
} finally {
if (c != null) {
getHolder().unlockCanvasAndPost(c);
}
}
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
Log.i("Read","surfaceDestroyed is called");
_run = false;
}
}
其餘的代碼在哪裏? bmp從哪裏來?或者我只是想念它? – Jack
假設位圖bmp是我們在這部分代碼中已經創建的,這是代碼的主要部分,它正在顯示位圖... –
爲了瞭解爲什麼只有最後一個位圖被使用,我需要看到更改正在使用的位圖的代碼 – Jack