2012-01-03 14 views
0

私は画面上の画像ボタンをランダムに動かすアンドロイドのアプリケーションを作成しています。どのレイアウトが助けになるのか混乱しています。絶対的なレイアウトはx軸とy軸を持つように使いますが、現在はdepreceated .. relative ..its nt working ...私はx、yの位置に配置するためにランダムな番号を生成して、ボタンが動くようにしたい。 HERESにワット私はここに画像ボタンの位置を特定の位置に移動するためにアンドロイドアプリケーションでどのように相対レイアウトを使用できますか?

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    submit = (Button)findViewById(R.id.submit1); 
    submit.setOnClickListener(this); 
    machar = (ImageButton)findViewById(R.id.machar); 
    ed=(EditText)findViewById(R.id.eT1); 
    tb=(ToggleButton)findViewById(R.id.tb1); 
    tb.setOnClickListener(this); 
    RelativeLayout r1 =(RelativeLayout)findViewById(R.id.l1); 

    LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

    params.leftMargin=10; 
    params.rightMargin=20; 
    params.topMargin=30; 
    params.bottomMargin=40; 
    r1.setLayoutParams(params); 
    r1.addView(machar); 

} 

macharは、このコードが動作していない...イメージボタンでやった... xmlファイルは、相対的なレイアウトタグの名前L1が含まれており、その中にイメージボタンはマーチャー...ワット命名します私は間違っている?

答えて

0

あなたが発見したように、相対レイアウトには絶対的な位置はありません。あなたはあなたのImageButtonを動かすためにランダムにmacharの余白と余白を変更することができます。

+0

問題は、このコードが機能していないことです。 – navjosh

0

あなたの問題は、すでに追加されているビューを追加しようとしている可能性があると思います。 ImageButton macharは既にxmlで宣言されており、setContentViewを呼び出すと画面に描画されます。

私が示唆しているのは、ImageButton macharをプログラムで作成することです。つまり、xmlレイアウトで宣言するのではなく、onCreateメソッドで作成します。

+0

用量NTヘルプ..他の提案? – navjosh

0

をした後、あなたがrequestLayout()

public void requestLayout() 

のコールへの呼び出しを行う必要があるいくつかのマージンを変更し、この何かが、このビューのレイアウトを無効化している変更されたとき。これにより、ビューツリーのレイアウトパスがスケジュールされます。

あなたのView要素でrequestLayout()を呼び出す必要があります。が要素の上にsetでなければ、marginはRelativeLayoutの位置を制御します。

関連する問題