如何在按钮上绘制一条简单的线条

时间:2014-02-28 15:26:04

标签: android canvas paint

我正在制作一个小球并且穿越比赛,我想在胜利组合上划一条线。播放网格由按钮网格组成,我希望线条位于它们的顶部。此行将绘制,但即使设置为透明,它也会有一个黑色背景隐藏按钮网格。

当我想开始一款新游戏时,我如何让透明度工作变得清晰? 我希望这是有道理的。

这是抽奖类:

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);

1 个答案:

答案 0 :(得分:0)

如果要绘制带alpha的行,请使用:

paint.setAlpha(125);
paint.setColor(Color.RED);
paint.setStrokeWidth(10);

如果您使用paint其他地方。

,请记住在使用它之后将其重新设置

注意:

  • 0 =完全透明
  • 255 =完全不透明

编辑:好的,我想您可能正在尝试清除画布,因此它开始是空白的。

清除它,使用PorterDuff清除它。

@Override
  public void onDraw(Canvas canvas) {
       canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
       canvas.drawLine(0, 0, 1000, 1000, paint);
}

我不认为你的setBackgroundColor有效,因为你已经覆盖了draw方法。但我可能是错的,上面的代码应该解决这个问题。