我有一个面板放在另一个视图的顶部,通过一个相关布局。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