0

以下に示すように、2つのimageViewをプロマティックに作成しました。

        public void createImageViews(Integer count){



    ImageView[] imageViewArray = new ImageView[count];

    for (int i = 0; i < count; i++ ) {
        imageViewArray[i] = new ImageView(getBaseContext());
        imageViewArray[i].setId(i); // unique property for every imageView


        if(i==0){
            RelativeLayout.LayoutParams params =  new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);

            params.addRule(RelativeLayout.ALIGN_PARENT_TOP);
            params.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
            imageViewArray[i].setLayoutParams(params);
            imageViewArray[i].setBackgroundResource(imagesForIv[i]);
            _UIRLParent.addView(imageViewArray[i]);
            Log.v("first", "first"+i);
        }
        else if(i < 3){

            RelativeLayout.LayoutParams params =  new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
            params.addRule(RelativeLayout.RIGHT_OF,imageViewArray[i].getId());
            imageViewArray[i].setBackgroundResource(imagesForIv[i]);
            _UIRLParent.addView(imageViewArray[i],params);
            Log.v("second", "second"+i);
        }

    }

2番目のimageViewを最初のimageViewのRightOfに配置する必要があります。誰かが私を助けることができますか?これは私の時間をたくさん食い尽くしています。

4

1 に答える 1

0

https://stackoverflow.com/a/5191159/1436931を試してください

間違ったインデックス値を使用しています。

ラインで

params.addRule(RelativeLayout.RIGHT_OF,imageViewArray[i].getId());

現在の画像を現在の画像の右に揃えます。:)

最後のimageViewid、つまり左側のImageViewのインデックスを追跡する必要があります

あなたはこのようなものが必要です

params.addRule(RelativeLayout.RIGHT_OF,imageViewArray[i-1].getId());

于 2012-07-05T11:34:45.530 に答える