現在、カスタム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をオーバーライドするよりも良い方法がありますか?