surfaceviewに画像を追加し、クリック可能にしたい。レイアウトを使用してxml経由でそれを行うことができます。しかし、コードから動的にそれを行うことはできません。SurfaceHolderタイプをSurfaceHolder.SURFACE_TYPE_PUSH_BUFFERSに設定したため、lockcanvasを使用してキャンバスに画像を描画することもできません。アプリのSurfaceviewに画像を描画するにはどうすればよいですか。plsは私を導きますか?
22926 次
1 に答える
12
そんな感じ
public class MSurface extends SurfaceView implements SurfaceHolder.Callback {
public MSurface(Context context) {
super(context);
getHolder().addCallback(this);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Bitmap icon = BitmapFactory.decodeResource(getResources(),R.drawable.icon);
canvas.drawColor(Color.BLACK);
canvas.drawBitmap(icon, 10, 10, new Paint());
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
// TODO Auto-generated method stub
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
Canvas canvas = null;
try {
canvas = holder.lockCanvas(null);
synchronized (holder) {
onDraw(canvas);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (canvas != null) {
holder.unlockCanvasAndPost(canvas);
}
}
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
}
}
于 2012-10-16T10:04:37.577 に答える