1 回答

TA貢獻1789條經驗 獲得超10個贊
問題在于多次設置內容視圖。只有最后設置的視圖(帶有藍色圓圈的視圖)可見。如果您希望多個圓圈同時可見,您應該在一個視圖內的一個畫布上繪制它們。我重新排列了您的代碼,以便它執行您想要的操作:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
CirclesView circlesView = new CirclesView(this);
setContentView(circlesView);
}
}
public class CirclesView extends View {
public Circle circleR;
public Circle circleG;
public Circle circleB;
public CirclesView(Context context) {
super(context);
circleR = new Circle(200, 255, 0, 0);
circleG = new Circle(500, 0, 255, 0);
circleB = new Circle(800, 0, 0, 255);
}
@Override
protected void onDraw(Canvas canvas){
circleR.draw(canvas);
circleG.draw(canvas);
circleB.draw(canvas);
}
}
public class Circle {
public Paint paint;
public int y;
public Circle(int y, int r, int g, int b) {
paint = new Paint();
paint.setColor(Color.rgb(r,g,b));
this.y=y;
}
public void draw(Canvas canvas) {
canvas.drawCircle(30, this.y,30, paint);
}
}
Circle 知道如何在畫布上繪制自己,該畫布將由視圖提供給它。
添加回答
舉報