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