Android SurfaceView多次绘制位图
我正在尝试在surfaceView中绘制位图,我可以成功绘制,但我需要根据其他一些用户移动在屏幕上移动该位图,但当我设置Android SurfaceView多次绘制位图,android,surfaceview,surfaceholder,Android,Surfaceview,Surfaceholder,我正在尝试在surfaceView中绘制位图,我可以成功绘制,但我需要根据其他一些用户移动在屏幕上移动该位图,但当我设置 canvas.drawColor(Color.TRANSPARENT); canvas.drawBitmap(bitmap, left, top, null); 它在屏幕上多次绘制相同的位图 但当我这样做的时候 canvas.drawColor(Color.GREEN); canvas.drawBitmap(bitmap, left, top, null); 它可
canvas.drawColor(Color.TRANSPARENT);
canvas.drawBitmap(bitmap, left, top, null);
它在屏幕上多次绘制相同的位图
但当我这样做的时候
canvas.drawColor(Color.GREEN);
canvas.drawBitmap(bitmap, left, top, null);
它可以正常工作,只绘制一个位图并移动它,但我需要透明的背景,而不是彩色的
代码
公共类DotsSurfaceView扩展了SurfaceView,实现了SurfaceHolder.Callback{
私人土地持有人;
创建私有布尔值;
位图
@Override
public void surfaceCreated(SurfaceHolder holder) {
// draw();
created = true;
}
@Override
// This is always called at least once, after surfaceCreated
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
// draw();
created = true;
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
public DotsSurfaceView(Context context) {
super(context);
holder = getHolder();
holder.addCallback(this);
holder.setFormat(PixelFormat.TRANSPARENT);
Drawable drawable = ARTrackingActivity.contexti.getDrawable(R.drawable.ic_tune_black_24px);
bitmap =Utils.drawableToBitmap(drawable);
}
public void draw(float left, float top) {
Canvas canvas = null;
try {
canvas = holder.lockCanvas();
synchronized (holder) {
draw2(canvas, left, top);
}
} finally {
if (canvas != null) {
holder.unlockCanvasAndPost(canvas);
}
}
}
public void draw2(Canvas canvas, float left, float top) {
if (created) {
canvas.drawColor(Color.TRANSPARENT);
canvas.drawBitmap(bitmap, left, top, null);
}
}
}您能发布DotsSurface视图的完整来源吗?最好看到exteded类/EDITED:我添加了完整的源代码你能发布DotsSurfaceView的完整源代码吗?最好看到exteded类/EDITED:我添加了完整的源代码