使用画布时的黑屏

时间:2018-05-21 18:32:44

标签: java android canvas surfaceview

我正在努力打3场比赛。对于初学者,我想在屏幕上画一些东西,但无论我尝试什么,我只会看到黑屏。

 public class MainActivity extends Activity {
 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //MAKE FULLSCREEN
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);

    GameView gameview = new GameView(this);
    setContentView(gameview);
   }
}
public class GameView extends SurfaceView{
private int numCol, numRow;
private int bWid, bHeight;
private Bitmap purpleBit;
private Bitmap rainbowBitmp;
private Bitmap redBitmp;

  public GameView(Context context){
    super(context);
  }
  @Override
   public void onDraw(Canvas canvas){
    super.onDraw(canvas);
    canvas.drawColor(Color.WHITE);
    Paint paint = new Paint();
    paint.setColor(Color.rgb(250, 0, 0));
    canvas.drawRect(100, 100, 200, 200, paint);
  }
}

1 个答案:

答案 0 :(得分:0)

设置绘画宽度,颜色,笔触

public class MainActivity extends Activity {
 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //MAKE FULLSCREEN
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);

    GameView gameview = new GameView(this);
    setContentView(gameview);
   }
}
public class GameView extends SurfaceView{
private int numCol, numRow;
private int bWid, bHeight;
private Bitmap purpleBit;
private Bitmap rainbowBitmp;
private Bitmap redBitmp;

  public GameView(Context context){
    super(context);
  }
  @Override
   public void onDraw(Canvas canvas){
    super.onDraw(canvas);
    canvas.drawColor(Color.WHITE);
    Paint mPaint = new Paint();

   //this is missing
    mPaint.setColor(Color.rgb(250, 0, 0));
    mPaint.setColor(Color.RED);
    mPaint.setStyle(Paint.Style.STROKE);
    mPaint.setStrokeJoin(Paint.Join.ROUND);
    mPaint.setStrokeCap(Paint.Cap.ROUND);
    mPaint.setStrokeWidth(10);


    canvas.drawRect(100, 100, 200, 200, mPaint);
  }
}