Программно установить ширину и высоту ImageView?
Как я могу программно установить ширину и высоту 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.
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();
Надеюсь, это поможет вам.