Java 使用画布时出现黑屏

Java 使用画布时出现黑屏,java,android,canvas,surfaceview,Java,Android,Canvas,Surfaceview,我正在尝试第三场比赛。首先,我想在屏幕上画一些东西,但不管我怎么做,我都只能得到一个黑屏 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //MAKE FULLSCREEN getWindow().setFlags(WindowMa

我正在尝试第三场比赛。首先,我想在屏幕上画一些东西,但不管我怎么做,我都只能得到一个黑屏

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

设置绘制宽度、颜色、笔划

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

为什么
setColor
2次?可选使用RGB或direct ColorsSurface视图更难使用。从本文开始学习()(rus)尝试删除super.ondraw