/ / ImageButton автоматично се преоразмерява в gridlayout - android, xml, оформление

ImageButton автоматично се преоразмерява в gridlayout - Android, xml, оформление

Аз питам този (по възможност) доста лесен въпростъй като не мога да го разбера сам и да влизам в повече от час, не ми дава добри резултати. Така че въпросът е: Как мога да направя моите елементи (обикновено тези са само 16 бутони за изображения), така че да могат да останат в мащаб (в сравнение с gridlayout), когато моята снимка е наистина голяма (Така че по-кратък начин: Зареждам 16xImages като src на buttonImages , всяко изображение е 640х640 и искам да мащабирам тези 16 бутона в оформлението на решетката в сравнение с размера / височината на оформлението на решетката и броя на колоните / редове). Надявам се, че това е възможно да се пише в XML, тъй като не искам да refactor моя код Java:

Пс. Аз съм начинаещ в програмирането на Android

Ps2.Here е моя GridLayout с пример за бутон, но това е напълно погрешно: /

<GridLayout
android:id="@+id/GridLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="4"
android:rowCount="4"
tools:context=".GridXMLActivity"
android:layout_below="@+id/Tx1"
android:layout_above="@+id/restart"
android:layout_marginBottom="50sp"
android:layout_marginTop="50sp"
>


<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:src="@drawable/clear"
android:id="@+id/But1"
android:scaleType="fitXY"
android:onClick="but1"

/>

[РЕДАКТИРАНЕ] Аз дори направих такова оформление, но иманякакви проблеми. Първият е, че моето оформление на мрежата изобщо не се мащабира! (Така че, когато взема екран с по-ниска или по-висока разделителна способност, то няма да се побере). Ето защо исках да направя този бутон някакъв размер, който може да се променя (на този екран всеки бутон има ширина и височина при 60см, които знам, че не трябва) Друг проблем е, че работя върху фонове на бутони и исках да го направя. Обикновено искам да постигна същото нещо като на екрана, но го направих по друг / по-гъвкав начин (Така че резолюцията и ориентацията няма да повлияят на моя гой и размерите на неговия елемент). Ако имате нужда от цял ​​XML файл, ще го публикувам тук, но това е малко бъркотия, тъй като съм копирай-паста 16 пъти Image Button въведете описанието на изображението тук

Отговори:

2 за отговор № 1

Ако искате нещо да се мащабира, запазвайки съотношението и имате едно измерение match_parent, другият трябва да бъде wrap_content.

Така че, предполагайки, че искате бутонът винаги да съвпада с ширината, но останете в правилния аспект:

<ImageButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
... />

За да направите всички елементи да се поберат в мрежата, а не всички елементи да се поберат на техните изображения, трябва да използвате теглото. Теглото с оформление на мрежата изисква поддръжка на библиотеката преди API21

<GridLayout ...
android:columnCount="2">

<ImageButton
app:layout_gravity="fill"
app:layout_columnWeight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
... />

...