/ / ImageButton é redimensionado automaticamente em gridlayout - android, xml, layout

ImageButton é redimensionado automaticamente em gridlayout - android, xml, layout

Eu estou perguntando isso (propably) pergunta muito fácildesde que eu não posso descobrir sozinho e pesquisando por mais de uma hora não me dá resultados adequados. Então a questão é: Como posso fazer meus itens (geralmente são apenas 16 botões de imagem) para que eles possam ficar em escala (comparando com o gridlayout) quando minha imagem é muito grande (Então, em curto: eu carrego 16xImagens como src no buttonImages , cada imagem é 640x640, e eu quero ter esses 16 botões no layout da grade escalonados comparando com a largura / altura do layout da grade e a contagem da coluna / fileira). Espero que seja possível escrever em XML, pois não quero refatorar meu código java: /

Ps. Eu sou novato para o programa Android

Ps2.Here é o meu GridLayout com o exemplo de botão, mas está completamente errado: /

<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"

/>

[EDITAR] Eu até fiz esse layout, mas existemalguns problemas. A primeira é que o layout da minha grade não é escalável! (Então, quando eu pego a tela com resolução menor ou maior, ela não se ajusta). É por isso que eu queria fazer desse botão uma espécie de tamanho ajustável (nessa tela cada botão tem largura e altura em 60sp que eu sei que não deveria) Outro problema é que eu estou trabalhando em fundos de botão e queria torná-lo src. Genereally eu quero conseguir a mesma coisa como na tela, mas tornando-a outra maneira / mais flexível (Então a resolução e orientação não afetarão o meu gui e o tamanho do elemento). Se você precisar de um arquivo XML inteiro, eu postarei aqui, mas é um pouco confuso, já que eu copio e colei 16 vezes o botão Image insira a descrição da imagem aqui

Respostas:

2 para resposta № 1

Se você quiser algo para dimensionar, mantendo a relação de aspecto e você tem uma dimensão definida para match_parent, o outro deve ser wrap_content.

Então, presumindo que você queira que o botão sempre caiba na largura, mas fique no aspecto correto:

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

Para fazer todos os itens se encaixarem na grade, em vez de todos os itens se encaixarem em suas imagens, você deve usar o peso. Peso com layout de grade requer a biblioteca de suporte antes de API21

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

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

...