アプリケーション開始時に領域に画像を入れたいと思っています。 画像の数が一定量ではないので、画像を動的に作成する必要があります。 良いバランスのために作成されている間、すべての画像の位置/余白を設定したいと思います。Android。作成時にイメージビューを移動する方法(位置/マージンを設定する)
私は以下を試しましたが、有効性はありません。 ・作成後、imageview.layout()を使用します。 ・LayoutParams.margins()を使用します。 ・AsyncTaskを使用して余白を設定します。 ・activity.runOnUiThread()。私は無効()メソッドを呼び出すことを知っていない
// After access server, if needed then add a imageview to the 'c_box'
// c_box: the parent that imageview to add.
FrameLayout c_box = (FrameLayout) findViewById(R.id.c_box);
MarginLayoutParams mlp = new MarginLayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
ImageView img1 = new ImageView(this);
img1.setImageResource(R.drawable.c_file);
img1.setLayoutParams(params);
img1.setLongClickable(true);
img1.setId(img_id);
c_box.addView(img1);
img1.setOnTouchListener(listener);
**// it's possible to set the position by layout or margin?
img1.layout(100, 100, 200, 200);**
:
この
はコードです。// After access server, if needed then add a imageview to the 'c_box'
// c_box: the parent that imageview to add.
FrameLayout c_box = (FrameLayout) findViewById(R.id.c_box);
MarginLayoutParams mlp = new MarginLayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
mlp.setMargins(100, 100, 200, 200);
ImageView img1 = new ImageView(this);
img1.setImageResource(R.drawable.c_file);
img1.setLayoutParams(mlp);
img1.setLongClickable(true);
img1.setId(img_id);
c_box.addView(img1);
img1.setOnTouchListener(listener);
ありがとうございました。 イメージビューを作成して親に追加した後は可能ですか? – kinglomei
さて、onDrawが呼び出された後にこれらの余白を設定する場合、レイアウトを再描画する必要があると思います。ビューの再描画を強制するには、yourImageViewHere.invalidate();と言うことができます。 http://developer.android.com/reference/android/view/View.html#invalidate()をご覧ください。これがうまくいくなら、私の答えを受け入れてください。 –
非常にありがとう。この問題が解決された場合、私はあなたに答えてくれることをうれしく思います。私はいくつかのコードを追加した私の質問を編集しました。何かアドバイス? – kinglomei