Viewを拡張するクラスBallがあります。その中に、いくつかの特性を与え、onTouchEvent()を実装して、動きを処理できるようにします。また、onDrawを使用して、ボールのビットマップを描画できるようにします。私のアクティビティクラスでは、新しいレイアウトを作成し、それにビューを追加して表示できるようにします。レイアウトにボールを追加しようとすると表示されない場合を除いて、すべて正常に動作します!レイアウトで最初に追加されたボールが常に表示されます!アクティビティクラスのonCreateコードは次のとおりです。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.HORIZONTAL);
int lHeight = LinearLayout.LayoutParams.WRAP_CONTENT;
int lWidth = LinearLayout.LayoutParams.WRAP_CONTENT;
Point point1 = new Point();
point1.x = 50;
point1.y = 20;
Point point2 = new Point();
point2.x = 100;
point2.y = 20;
Point point3 = new Point();
point3.x = 150;
point3.y = 20;
ColorBall ball1 = new ColorBall(this,R.drawable.bol_groen, point1);
ll.addView(ball1, new LinearLayout.LayoutParams(lHeight, lWidth));
setContentView(ll);
ColorBall ball2 = new ColorBall(this,R.drawable.bol_rood, point2);
ll.addView(ball2, new LinearLayout.LayoutParams(lHeight, lWidth));
setContentView(ll);
ColorBall ball3 = new ColorBall(this,R.drawable.bol_blauw, point3);
ll.addView(ball3, new LinearLayout.LayoutParams(lHeight, lWidth));
setContentView(ll);
}
最後にsetContentView()を1つだけ使ってみましたが、レイアウトを使用できないので、カスタムビューにあるビットマップを描画できると思います!コードを変更してビューを作成し、その中に表示したいすべてのボールを含む配列を作成してから、このビューをメインクラスのアクティビティから表示するように設定する必要がありますか?(このsetContentView(customview)など)。