Как я могу установить ImageView
ширину и высоту 'программно?
java
android
android-emulator
android-widget
praveenb
источник
источник
Ответы:
Это может быть слишком поздно, но ради других, у которых такая же проблема, установить высоту ImageView:
Надеюсь это поможет.
Важный. Если вы устанавливаете высоту после того, как макет уже «выложен», убедитесь, что вы также вызываете:
источник
image_view.getLayoutParams().height = RelativeLayout.LayoutParams.WRAP_CONTENT
. Если родительский элемент представленияLinearLayout
заменяетRelativeLayout
егоЕсли представление вашего изображения является динамическим, ответ, содержащий getLayout, не будет выполнен с нулевым исключением.
В этом случае правильный путь:
источник
ImageView
исчезает. Хитрость заключается в том, чтобы сделать часть макета (то есть<this_part_here>.LayoutParams
) такой же, как родительская частьImageView
. Так, например, если вы поместили вашImageView
внутриTableRow
вTableLayout
, вы должны иметь его какTableRow.LayoutParams
.Это простой способ сделать вашу задачу:
и другой способ, если вы хотите указать размер экрана по высоте и ширине, используйте следующий код:
надеюсь использовать в полной мере для вас.
источник
int
переменные, если они не будут использоваться в других местах? Кажется ненужным, но я не знаю много об этом.Я играл в это с
pixel
иdp
.Как установить по пикселям :
Как установить по дп :
Надеюсь, это поможет вам.
источник
Если вам нужно установить ширину или высоту
match_parent
(такие же большие, как у его родителя) илиwrap_content
(достаточно большие, чтобы соответствовать собственному внутреннему содержимому), тоViewGroup.LayoutParams
имеет следующие две константы:Или вы можете установить их как в ответе Хакема Заида :
источник
Вы можете установить значение для всех случаев.
источник
Лучший и самый простой способ динамически установить кнопку -
Указанные высота и ширина указаны в пикселях px . 45 - высота в dp, а 42 - ширина в dp .
Так, например, если вы поместили свою кнопку в TableRow в TableLayout, вы должны иметь ее как TableRow.LayoutParams
источник
Просто создайте объект LayoutParams и назначьте его для вашего imageView
источник
возвращает значение высоты в пикселях. Вы должны сначала получить размеры экрана, чтобы правильно установить значения.
После того, как вы получите размеры экрана, вы можете установить ширину и высоту изображения, используя соответствующие поля.
источник
Чтобы установить ImageView и высоту программно, вы можете сделать
источник
Котлин
источник
В сценарии, где размер виджета должен быть установлен программно, соблюдайте следующие правила.
LayoutParam
для макета, в котором вы добавляете это представление . В моем случае я добавляю,TableRow
чтобы я должен был сделатьTableRow.LayoutParams
final float scale = getResources().getDisplayMetrics().density; int dpWidthInPx = (int) (17 * scale); int dpHeightInPx = (int) (17 * scale);
TableRow.LayoutParams deletelayoutParams = new TableRow.LayoutParams(dpWidthInPx, dpHeightInPx); button.setLayoutParams(deletelayoutParams); tableRow.addView(button, 1);
источник
Если вы хотите просто подогнать изображение к представлению изображения, вы можете использовать «обернуть содержимое» в свойстве height и width с типом scale-type, но если вы хотите установить вручную, вы должны использовать LayoutParams.
Layoutparams эффективен для установки высоты и ширины макета программно.
источник
источник