1 回答

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
問(wèn)題在于多次設(shè)置內(nèi)容視圖。只有最后設(shè)置的視圖(帶有藍(lán)色圓圈的視圖)可見(jiàn)。如果您希望多個(gè)圓圈同時(shí)可見(jiàn),您應(yīng)該在一個(gè)視圖內(nèi)的一個(gè)畫(huà)布上繪制它們。我重新排列了您的代碼,以便它執(zhí)行您想要的操作:
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 知道如何在畫(huà)布上繪制自己,該畫(huà)布將由視圖提供給它。
添加回答
舉報(bào)