我有一個面板放在另一個視圖的頂部,通過一個相關佈局。Android透明畫布(surfaceview)
我想給這個面板一個透明的背景,但沒有找到正確的方法來做這個搜索幾個小時後。當我將alpha設置回0時,我會以黑色背景結束。
希望這裏有人能幫助我。
非常感謝!
面板通過這個代碼得出:
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
public class Panel extends SurfaceView implements SurfaceHolder.Callback {
private ViewThread mThread;
Paint paint = new Paint();
public Panel(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
getHolder().addCallback(this);
mThread = new ViewThread(this);
}
public void doDraw(Canvas canvas) {
canvas.drawARGB(50, 120, 120, 120);
paint.setARGB(255, 255, 0, 0);
paint.setStrokeWidth(2);
int CanvasHeight = canvas.getHeight();
int CanvasWidth = canvas.getWidth();
canvas.drawLine(LeftStartX, LeftStartY, StopX, StopY, paint);
}
public void updateDrawing(float LB, float RB, float BD, float AH, float AD){
Left = LB;
Right = RB;
Distance = BD;
AHeight = AH;
ADistance = AD;
}
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {}
public void surfaceCreated(SurfaceHolder holder) {
if (!mThread.isAlive()) {
mThread = new ViewThread(this);
mThread.setRunning(true);
mThread.start();
}
}
public void surfaceDestroyed(SurfaceHolder holder) {
if (mThread.isAlive()) {
mThread.setRunning(false);
}
}
}
謝謝您的回答,但不幸的是這並沒有解決問題。我把這行放在'getHolder()。addCallback(this)'的上面和下面,'但是背景保持黑色。 – patrick
uhmmm ..如何刪除背景'setBackgroundResource(0)'或xml'android:background =「@ null」' –
Ferdy,感謝您的新建議,但不幸的是,這也沒有解決問題。這也顯示了黑色背景。 – patrick