1

我接下来试试

LinearLayout.LayoutParams b = new LinearLayout.LayoutParams(
                        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
                b.gravity =Gravity.CENTER;

                ivOne.setLayoutParams(b);

但这不起作用,布局左侧的图像视图

4

3 回答 3

3

尝试将父布局更改为RelativeLayout,并使用属性centerInParent

RelativeLayout rootLayout = new RelativeLayout(this);
rootLayout.setLayoutParams( new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.CENTER_IN_PARENT);
ImageView ivOne = new ImageView(this);
ivOne.setImageResource(R.drawable.ic_launcher);
ivOne.setScaleType(ImageView.ScaleType.CENTER);
ivOne.setLayoutParams(params);
//TODO : add other views 
rootLayout.addView(ivOne);
于 2013-06-27T09:41:12.400 回答
0

您不能直接将参数设置为您ImageView应该使用ImageIcons的参数

尝试这个:

ImageIcons[i] = new ImageView(this);
ImageIcons[i].setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
layoutParams.gravity=Gravity.CENTER;
ImageIcons[i].setLayoutParams(layoutParams);

希望它有效..对我来说很好。!

于 2013-06-27T11:33:49.553 回答
-1

您可以像 zozelfelfo 所说的那样使用 RelativeLayout 及其 centerInParent 属性,或者您可以坚持使用 LinearLayout 并尝试以下操作:

LinearLayout.LayoutParams b = new LinearLayout.LayoutParams(
                        LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);

                ivOne.setScaleType(ImageView.ScaleType.CENTER);

                ivOne.setLayoutParams(b);

但是在这种方法中,您的 ImageView 将占据整个布局,因此如果您也有其他视图,请小心。如果你这样做,那么你最好的选择是使用RelativeLayout

于 2013-06-27T09:25:48.893 回答