我正在制作一个小球并且穿越比赛,我想在胜利组合上划一条线。播放网格由按钮网格组成,我希望线条位于它们的顶部。此行将绘制,但即使设置为透明,它也会有一个黑色背景隐藏按钮网格。
当我想开始一款新游戏时,我如何让透明度工作变得清晰? 我希望这是有道理的。
这是抽奖类:
public class DrawView extends View {
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
public DrawView(Context context) {
super(context);
paint.setColor(Color.RED);
paint.setStrokeWidth(10);
}
@Override
public void onDraw(Canvas canvas) {
canvas.drawLine(0, 0, 1000, 1000, paint);
}
}
这是游戏中方法的一部分:
public void checkWin() {
if (squares[1] == 1 & squares[2] == 1 & squares[3] == 1) {
for (int i = 1; i <= 9; i++) {
buttons[i].setEnabled(false);
}
drawView = new DrawView(this);
drawView.setBackgroundColor(Color.TRANSPARENT);
setContentView(drawView);
Intent d = new Intent(this, Win.class);
startActivity(d);
答案 0 :(得分:0)
如果要绘制带alpha的行,请使用:
paint.setAlpha(125);
paint.setColor(Color.RED);
paint.setStrokeWidth(10);
如果您使用paint
其他地方。
注意:
编辑:好的,我想您可能正在尝试清除画布,因此它开始是空白的。
清除它,使用PorterDuff清除它。
@Override
public void onDraw(Canvas canvas) {
canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
canvas.drawLine(0, 0, 1000, 1000, paint);
}
我不认为你的setBackgroundColor
有效,因为你已经覆盖了draw方法。但我可能是错的,上面的代码应该解决这个问题。