Jak mogę ImageView
programowo ustawić szerokość i wysokość?
java
android
android-emulator
android-widget
praveenb
źródło
źródło
Odpowiedzi:
Może być za późno, ale ze względu na innych, którzy mają ten sam problem, ustawić wysokość ImageView:
Mam nadzieję że to pomoże.
Ważny. Jeśli ustawiasz wysokość po tym, jak układ został już „ułożony”, upewnij się, że również dzwonisz:
źródło
image_view.getLayoutParams().height = RelativeLayout.LayoutParams.WRAP_CONTENT
.. Jeśli rodzic widoku jestLinearLayout
zastąpionyRelativeLayout
nimJeśli widok obrazu jest dynamiczny, odpowiedź zawierająca getLayout zakończy się niepowodzeniem z wyjątkiem wartości null.
W takim przypadku poprawny sposób to:
źródło
ImageView
znika. Sztuczka polega na tym, aby część układu (tj.<this_part_here>.LayoutParams
) Była taka sama, jak element nadrzędnyImageView
. Na przykład, jeśli umieściłeś swojeImageView
wTableRow
ciąguTableLayout
, powinieneś je mieć jakoTableRow.LayoutParams
.Ten prosty sposób na wykonanie zadania:
i inny sposób, jeśli chcesz podać rozmiar ekranu w wysokości i szerokości, użyj poniższego kodu:
mam nadzieję, że wykorzystasz to dla ciebie.
źródło
int
zmienne, jeśli nie zostaną ponownie użyte w innym miejscu? Wydaje się to niepotrzebne, ale niewiele wiem na ten temat.Grałem w ten z
pixel
idp
.Jak ustawić według piksela :
Jak ustawić DP :
Mam nadzieję, że to ci pomoże.
źródło
Jeśli chcesz ustawić szerokość lub wysokość na
match_parent
(tak duże jak jego rodzic) lubwrap_content
(wystarczająco duże, aby zmieściło się w jego wewnętrznej treści), toViewGroup.LayoutParams
ma dwie stałe:Lub można je ustawić jak w hakem Zaied za odpowiedź :
źródło
Możesz ustawić wartość dla wszystkich przypadków.
źródło
Najlepszym i najprostszym sposobem na dynamiczne ustawienie przycisku jest
Powyższa wysokość i szerokość są w pikselach px . 45 oznacza wysokość w dp, a 42 oznacza szerokość w dp .
Na przykład, jeśli umieściłeś przycisk w TableRow w TableLayout, powinieneś mieć go jako TableRow.LayoutParams
źródło
Po prostu stwórz obiekt LayoutParams i przypisz go do swojego imageView
źródło
zwraca wartość wysokości w pikselach. Najpierw musisz uzyskać wymiary ekranu, aby poprawnie ustawić wartości.
Po uzyskaniu wymiarów ekranu możesz ustawić szerokość i wysokość widoku obrazu za pomocą odpowiednich marginesów.
źródło
Aby programowo ustawić ImageView i wysokość, możesz to zrobić
źródło
kotlin
źródło
W scenariuszu, w którym rozmiar widgetu należy ustawić programowo, upewnij się, że obowiązują poniższe reguły.
LayoutParam
dla układu, w którym dodajesz ten widok . W moim przypadku dodaję,TableRow
więc musiałem to zrobić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);
źródło
Jeśli chcesz tylko dopasować obraz do widoku obrazu, możesz użyć opcji „zawijaj zawartość” we właściwości height i width ze skalowaniem, ale jeśli chcesz ustawić ręcznie, musisz użyć LayoutParams.
Layoutparams pozwala programowo ustawić wysokość i szerokość układu.
źródło
źródło