Установить ширину и высоту ImageView программно?
Как можно программно настроить ширину и высоту ImageView
?
- Как исправить INSTALL_PARSE_FAILED_MANIFEST_MALFORMED в приложении для Android
- Эмулятор Android не запускается, показывая «недопустимый параметр командной строки»,
- Как настроить настройки прокси-сервера для эмулятора Android?
- Не удается запустить AVD в эмуляторе: библиотека QT не найдена
- Как загрузить сервисы Google Play в Android-эмуляторе?
- Эмулятор: ERROR: эмуляция x86 в настоящее время требует аппаратного ускорения
- Как получить номер сборки / версии вашего приложения для Android?
- Как получить доступ к папке данных / данных на устройстве Android?
Возможно, слишком поздно, но для других, у кого такая же проблема, установить высоту ImageView:
image_view.getLayoutParams().height = 20;
Надеюсь это поможет.
Важный. Если вы устанавливаете высоту после того, как макет уже «выложен», убедитесь, что вы также вызываете:
image_view.requestLayout()
Если ваше изображение является динамическим, ответ, содержащий getLayout, завершится ошибкой с исключением.
В этом случае правильный путь:
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(100, 100); iv.setLayoutParams(layoutParams);
Этот простой способ выполнить свою задачу:
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);
надеюсь, что вы используете полностью.
Я сыграл этот с 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();
Надеюсь, это поможет вам.
Если вам нужно установить ширину или высоту в match_parent
(размером с родительский) или wrap_content
(достаточно большой, чтобы соответствовать собственному внутреннему контенту), то ViewGroup.LayoutParams
имеет две константы:
imageView.setLayoutParams( new ViewGroup.LayoutParams( // or ViewGroup.LayoutParams.WRAP_CONTENT ViewGroup.LayoutParams.MATCH_PARENT, // or ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT ) );
Или вы можете установить их, как в ответе Хаким Заид:
imageView.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT; //...
Самый простой и простой способ установки кнопки динамически:
Button index=new Button(this); int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 45, getResources().getDisplayMetrics()); int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 42, getResources().getDisplayMetrics());
Вышеуказанная высота и ширина находятся в пикселях px . 45 – высота в dp, а 42 – ширина в dp .
index.setLayoutParams(new .LayoutParams(width, height));
Так, например, если вы разместили свою кнопку в TableRow в TableLayout, вы должны иметь ее как TableRow.LayoutParams
index.setLayoutParams(new TableRow.LayoutParams(width, height));
Вы можете установить значение для всего случая.
demoImage.getLayoutParams().height = 150; demoImage.getLayoutParams().width = 150; demoImage.setScaleType(ImageView.ScaleType.FIT_XY);
Просто создайте объект LayoutParams и назначьте его вашему изображению.
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(150, 150); imageView.setLayoutParams(params);
image_view.getLayoutParams().height
возвращает значение высоты в пикселях. Сначала необходимо получить размеры экрана, чтобы правильно установить значения.
Display display = context.getWindowManager().getDefaultDisplay(); DisplayMetrics outMetrics = new DisplayMetrics(); display.getMetrics(outMetrics); int screen_height = outMetrics.heightPixels; int screen_width = outMetrics.widthPixels;
После того, как вы получите размеры экрана, вы можете установить ширину и высоту изображения, используя соответствующие поля.
view.getLayoutParams().height = screen_height - 140; view.getLayoutParams().width = screen_width - 130 ;