ユーザインタフェースを動的に作成しようとしています。私は正常にビューを作成し、私の背景イメージをロードしました。背景に表示する2つの追加の小さなビュー項目を作成しました。私の問題は、小さな見解を描く方法を教えてくれるアドバイスや指示を見つけることができなかったことです。それは些細な行為でなければならないと思われ、私はそれが正しい参照を見つけることであると推測しています。誰かが私を正しい方向に向けることを願っています。ここでアクティビティから動的にビューコンポーネントを追加する方法
は私の活動です:
public class GhostActivity extends Activity implements OnTouchListener
{
private DrawView ghostView;
public Card mCard1, mCard2;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
// ToDo add your GUI initialization code here
super.onCreate(savedInstanceState);
// requesting to turn the title OFF
requestWindowFeature(Window.FEATURE_NO_TITLE);
// making it full screen
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
ghostView = new DrawView(this);
setContentView(ghostView);
//get the window size
Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
Context context = getApplicationContext();
//create view items with initial positions
Point startPoint;
startPoint = new Point();
startPoint.x = 5;
startPoint.y = 3;
mCard1 = new Card(context, 1, R.drawable.bol_geel, startPoint);
startPoint.x = 5;
startPoint.y = 43;
mCard2 = new Card(context, 2, R.drawable.bol_rood, startPoint);
//now display them on the ghostView *****************HOW?
// set the callbacks
ghostView.setOnTouchListener(this);
mCard1.setOnTouchListener(this);
mCard2.setOnTouchListener(this);
}
、ここでは図です。
public class DrawView extends View
{
Drawable bg ;
public DrawView(Context context) {
super(context);
//setFocusable(true);
Drawable bg = this.getResources().getDrawable(R.drawable.bubbleblue480x800);
setBackgroundDrawable(bg);
}
@Override protected void onDraw(Canvas canvas) {
// canvas.drawColor(0x0000000); //if you want another background color
//draw on the canvas
}
}
編集:私の問題は、ghostViewキャンバスへのポインタを渡す必要があると考えています。 ghostView内で子を作成してから.drawメソッドを呼び出すと、予想どおりに表示されます。
@Override protected void onDraw(Canvas canvas) {
canvas.drawColor(0x0000000); //if you want another background color
//draw the cards on the canvas
mCard1.draw(canvas);
mCard2.draw(canvas);
}
ので、この時点で私はghostviewのキャンバスへの参照ポインタを取得する方法を疑問に思って。 正直言って私はアクティビティ - ビューの関係全体が混乱しているのを発見しています。
編集:私はそれがでframeLayoutを使用し、私が私の目的を達成することができそうです http://www.kellbot.com/2009/06/android-hello-circle/ このチュートリアルで詳細に基づいて異なるアプローチをとっています。
ありがとうございますs_id、私はさらにViewGroupを研究します。 – Squiggles