Android - ImageView边距未出现在LinearLayout中

时间:2011-09-28 01:40:00

标签: android imageview android-linearlayout margins layoutparams

现在,我正在努力完成一些简单的事情,比如在自定义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来考虑每个孩子的边缘?

1 个答案:

答案 0 :(得分:0)

您已创建imageParams但未在代码中使用该参数,而不是imageParams使用swatchParams参数。而你没有放置swatchParams参数的代码。