Android

Set ImageView width and height programmatically?

Программно установить ширину и высоту ImageView?

Как я могу программно установить ширину и высоту ImageView?

Переведено автоматически
Ответ 1

Возможно, уже слишком поздно, но ради других, у кого такая же проблема, установить высоту изображения ImageView:

imageView.getLayoutParams().height = 20;

Важно. Если вы устанавливаете высоту после того, как макет уже "выложен", убедитесь, что вы также вызываете:

imageView.requestLayout();
Ответ 2

Если ваш вид изображения динамический, ответ, содержащий getLayout, завершится ошибкой с нулевым исключением.

В этом случае правильный способ:

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(100, 100);
iv.setLayoutParams(layoutParams);
Ответ 3

Этот простой способ выполнить вашу задачу:

setContentView(R.id.main);    
ImageView iv = (ImageView) findViewById(R.id.left);
int width = 60;
int height = 60;
LinearLayout.LayoutParams parms = new LinearLayout.LayoutParams(width,height);
iv.setLayoutParams(parms);

и другой способ, если вы хотите задать размер экрана по высоте и ширине, используйте приведенный ниже код :

setContentView(R.id.main);    
Display display = getWindowManager().getDefaultDisplay();
ImageView iv = (LinearLayout) findViewById(R.id.left);
int width = display.getWidth(); // ((display.getWidth()*20)/100)
int height = display.getHeight();// ((display.getHeight()*30)/100)
LinearLayout.LayoutParams parms = new LinearLayout.LayoutParams(width,height);
iv.setLayoutParams(parms);

надеюсь, вы используете его полностью.

Ответ 4

Я играл в это с pixel и 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();

Надеюсь, это поможет вам.

2023-06-11 13:34 java android