现在,我正在努力完成一些简单的事情,比如在自定义LinearLayout中修改我的子ImageViews之间的边距空间(修改后的RadioGroup设计用于接受实现Checkable的自定义ImageView,不覆盖onMesarue)。简而言之,这些图像具有固定的尺寸(60x60dip),并且由于它们是动态的(来自网络),我必须动态添加它们,如下所示:
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来考虑每个孩子的边缘?
答案 0 :(得分:0)
您已创建imageParams
但未在代码中使用该参数,而不是imageParams
使用swatchParams
参数。而你没有放置swatchParams
参数的代码。