我有一個SurfaceView
這裏我設置背景顏色和像這樣的圖像:爲什麼畫布上的位圖出現在背景可繪製的下方?
BitmapDrawable tiledBackground = new BitmapDrawable(BitmapFactory.decodeResource(getResources(), R.drawable.background));
tiledBackground.setTileModeX(Shader.TileMode.REPEAT);
tiledBackground.setColorFilter(0xaacceeff, PorterDuff.Mode.DST_OVER);
this.setBackgroundDrawable(tiledBackground);
我也有一個動畫線程在那裏我畫的圖像(連續的調整它的x座標,使其顯示移動到左側)。背景圖像是透明的PNG,因此它的某些部分是透明的。看來我正在從線程繪製的圖像出現在以下可在SurfaceView
上繪製的背景。我如何讓它出現在背景之上?我繪製的圖像,像這樣:
private void doDraw(Canvas canvas) {
canvas.drawColor(Color.BLACK);
canvas.drawBitmap(missile, x, getHeight() - 95, paint);
canvas.restore();
}
missile
和paint
在線程的構造函數初始化:
missile = Bitmap.createBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.missile));
paint = new Paint();
可能無法正常工作,但嘗試在onDraw方法的開頭添加super.doDraw(canvas)。 –
'doDraw'不是'Thread'的一部分,所以我不能調用'super.doDraw()'。 –
對不起,我把你的doDraw和onDraw混在一起......我認爲它屬於擴展的Surfaceview。 doDraw在哪一類?你從哪裏打來的? –