我如何设置一个ImageView的宽度和高度编程?


当前回答

您可以为所有情况设置值。

demoImage.getLayoutParams().height = 150;

demoImage.getLayoutParams().width = 150;

demoImage.setScaleType(ImageView.ScaleType.FIT_XY);

其他回答

我用像素和dp做了这个。

private int dimensionInPixel = 200;

如何按像素设置:

view.getLayoutParams().height = dimensionInPixel;
view.getLayoutParams().width = dimensionInPixel;
view.requestLayout();

dp设置方法:

int dimensionInDp = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dimensionInPixel, getResources().getDisplayMetrics());
view.getLayoutParams().height = dimensionInDp;
view.getLayoutParams().width = dimensionInDp;
view.requestLayout();

希望这对你有所帮助。

如果你只是想在图像视图中适合图像,你可以使用缩放类型的高度和宽度属性“包装内容”,但如果你想手动设置,你必须使用LayoutParams。

Layoutparams对于以编程方式设置布局高度和宽度非常有效。

为了以编程方式设置ImageView和Height,你可以这样做

            //Makesure you calculate the density pixel and multiply it with the size of width/height
            float dpCalculation = getResources().getDisplayMetrics().density;
            your_imageview.getLayoutParams().width = (int) (150 * dpCalculation);

            //Set ScaleType according to your choice...
            your_imageview.setScaleType(ImageView.ScaleType.CENTER_CROP);

简单地创建一个LayoutParams对象并将其分配给imageView

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(150, 150);
imageView.setLayoutParams(params);

这可能太迟了,但为了其他人有同样的问题,设置ImageView的高度:

imageView.getLayoutParams().height = 20;

重要的。如果你在布局已经“布局”之后设置高度,确保你还调用:

imageView.requestLayout();