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