0

レイアウト パラメーターを使用してイメージビューを別の下に配置しようとしていますが、うまくいきません。これを達成したい: http://imgur.com/eZfEI

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);

                    iv_album[i] = new ImageView(main.this);
                    iv_album[i].setImageBitmap(resized_a_p);
                    iv_album[i].setPadding(0, 5, 5, 0);
                    iv_album[i].setId(i);
                    iv_album[i].setOnLongClickListener(main.this);
                    iv_album[i].setOnClickListener(main.this);
                    if (i>1){
                        params.addRule(RelativeLayout.BELOW, iv_album[i].getId() - 1);
                    }

なにが問題ですか ?

4

1 に答える 1

1

ImageView ごとに LayoutParams を作成するとうまくいきます。

RelativeLayout layout = (RelativeLayout) this.findViewById(R.id.layoutConnection);

ImageView[] iv_album = new ImageView[8];
for (int i = 0; i < 8; i++) {

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);

    iv_album[i] = new ImageView(this);
    iv_album[i].setImageDrawable(this.getResources().getDrawable(R.drawable.ic_launcher));
    iv_album[i].setPadding(0, 5, 5, 0);
    iv_album[i].setId(i + 1); // BELOW id 0 doesn't work
    if (i > 0) {
        params.addRule(RelativeLayout.BELOW, iv_album[i - 1].getId());
    }

    layout.addView(iv_album[i], params);
}

それが役に立てば幸い

于 2012-08-24T02:10:46.560 に答える