0

現在、カスタムLinearLayout内の子ImageView間にマージンスペースを追加するだけの簡単なことを達成するのに苦労しています(Checkableを実装するカスタムImageViewを取り込むように設計された変更されたRadioGroupは、onMesarueをオーバーライドしませんでした)。簡単に言うと、これらの画像は固定サイズ(60x60dip)であり、(Webから)動的であるため、次のように動的に追加する必要がありました。

        for(int i = 0; i < num; i++){
            ImageViewRadioButton childImage = new ImageViewRadioButton(mContext);
            float imagehWidthHeight = getResources().getDimension(R.dimen.image_width_and_height);

            LinearLayout.LayoutParams imageParams = new LinearLayout.LayoutParams((int) imageWidthHeight, (int) imageWidthHeight);
            int imageSpacing = Utils.dipsToPixels(10, mContext);
            int innerPadding = Utils.dipsToPixels(5, mContext);

            imageParams.leftMargin = imageSpacing;
            imageParams.rightMargin = imageSpacing;
            childImage.setAdjustViewBounds(true);
            childImage.setLayoutParams(imageParams);
            childImage.setBackgroundDrawable(getResources().getDrawable(R.drawable.blue_pressed));
            childImage.setPadding(innerPadding, innerPadding, innerPadding, innerPadding);
            childImage.setClickable(true);
            //other non-image properties...
            imageContainer.addView(childImage);
        }

動作するのはパディングだけで、適切に間隔を空けます。ただし、各子のパディング(マージン)の間にスペースはありません。私はこれを正しく行っていますか、それとも各子のマージンを考慮に入れるためにonMeasureをオーバーライドするよりも良い方法がありますか?

4

1 に答える 1

0

作成しましたが、パラメーターを使用 imageParamsする代わりに、コードでそのパラメーターを使用していません。そして、あなたはパラメータのコードを入れていませんでした。imageParamsswatchParamsswatchParams

于 2011-09-28T04:06:51.720 に答える