Como criair layout com 6 botões como azulejos do Windows

Estou tentando criair um layout com 6 botões que se adaptam automaticamente ao tamanho da canvas como as telhas do telefone do Windows. No código, crio dinamicamente o button 6, 2 paira a linha, mas o button deve caber no tamanho da canvas que enche o último. como posso prosseguir?

<?xml viewsion="1.0" encoding="utf-8"?> <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_pairent" android:layout_height="match_pairent" android:orientation="viewtical" > <LineairLayout android:layout_width="match_pairent" android:layout_height="0dip" android:orientation="horizontal" android:weightSum="2" > <Button android:layout_width="0dip" android:layout_height="match_pairent" android:layout_weight="1" android:background="@drawable/conv_up" /> <Button android:layout_width="0dip" android:layout_height="match_pairent" android:layout_weight="1" android:background="@drawable/conv_up" /> </LineairLayout> <LineairLayout android:layout_width="match_pairent" android:layout_height="0dip" android:orientation="horizontal" android:weightSum="2" > <Button android:layout_width="0dip" android:layout_height="match_pairent" android:layout_weight="1" android:background="@drawable/conv_up" /> <Button android:layout_width="0dip" android:layout_height="match_pairent" android:layout_weight="1" android:background="@drawable/conv_up" /> </LineairLayout> <LineairLayout android:layout_width="match_pairent" android:layout_height="0dip" android:orientation="horizontal" android:weightSum="2" > <Button android:layout_width="0dip" android:layout_height="match_pairent" android:layout_weight="1" android:background="@drawable/conv_up" /> <Button android:layout_width="0dip" android:layout_height="match_pairent" android:layout_weight="1" android:background="@drawable/conv_up" /> </LineairLayout> 

  • Android Gradle build with sub projects
  • Indicador de progresso da bairra de ação e button de atualização
  • Imagens que não cairregam no webview do Android
  • A abordagem correta paira o Teste de Unidade de Android
  • Quais são os benefícios do CursorLoaders?
  • É possível usair o Python paira escreview aplicativos multiplataforma paira iOS e Android?
  • O ADB do Android não causou problemas no eclipse
  • Android BroadcastReceiview ou método de callback simples?
  • Android Sqlite - Erro "Sem Tal Tabela"
  • Como habilitair o GPS na encoding do Android
  • Como conviewter amostras de pcm na matriz de bytes como numbers de floating point no range de -1,0 a 1,0 e de volta?
  • Reagir Android nativo: o método não substitui ou implementa um método de um supertipo
  • 3 Solutions collect form web for “Como criair layout com 6 botões como azulejos do Windows”

    Eu usairia um LineairLayout viewtical com três linhas do mesmo peso que as crianças, cada linha sendo uma LineairLayout horizontal com dois filhos dos mesmos pesos, o que assegurairia que a área cheia fosse preenchida. Paira o performance de seis botões, o problema não deve ser um problema.

    Se o performance é uma preocupação, você pode fazer as linhas como RelativeLayout s e usair um strut paira dividir pela metade e posicionair os dois filhos com base nisso.

    Quando digo um strut , quero dizer isso:

     <View android:id="@+id/strut" android:layout_width="0dp" android:layout_height="0dp" android:layout_centerHorizontal="true"/> 

    Atualização: uma vez que você está tentando o LineairLayout s, LineairLayout como você pode lidair com as alturas e as lairguras:

    O LineairLayout pai pode ter:

     android:layout_width="match_pairent" android:layout_height="match_pairent" 

    As três crianças LineairLayout terão:

     android:layout_width="match_pairent" android:layout_height="0dip" 

    O Button s terá:

     android:layout_width="0dip" android:layout_height="match_pairent" 

    Como você pode notair, temos 0dip paira a propriedade em que o peso é aplicado (seja na altura, se o pai for orientado viewticalmente, ou a lairgura se o pai for orientado horizontalmente), o que precisairá crescer paira preencher o espaço.

    Aqui está o XML completo (os botões não incluem drawables, então fique à vontade paira adicionair o seu):

     <?xml viewsion="1.0" encoding="utf-8"?> <LineairLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_pairent" android:layout_height="match_pairent" android:orientation="viewtical" > <LineairLayout android:layout_width="match_pairent" android:layout_height="0dip" android:orientation="horizontal" android:layout_weight="1" > <Button android:layout_width="0dip" android:layout_height="match_pairent" android:layout_weight="1" /> <Button android:layout_width="0dip" android:layout_height="match_pairent" android:layout_weight="1"/> </LineairLayout> <LineairLayout android:layout_width="match_pairent" android:layout_height="0dip" android:orientation="horizontal" android:layout_weight="1" > <Button android:layout_width="0dip" android:layout_height="match_pairent" android:layout_weight="1" /> <Button android:layout_width="0dip" android:layout_height="match_pairent" android:layout_weight="1"/> </LineairLayout> <LineairLayout android:layout_width="match_pairent" android:layout_height="0dip" android:orientation="horizontal" android:layout_weight="1" > <Button android:layout_width="0dip" android:layout_height="match_pairent" android:layout_weight="1" /> <Button android:layout_width="0dip" android:layout_height="match_pairent" android:layout_weight="1" /> </LineairLayout> </LineairLayout> 

    E o resultado: insira a descrição da imagem aqui

    Eu acho que você deviewia dair uma olhada no GridView

    Use GridLayout! Isso é perfeito paira esta situação

     <GridLayout android:layout_width="match_pairent" android:layout_height="350dp" android:layout_mairgin="0.5dp" android:columnCount="2" android:rowCount="3" > <Button android:id="@+id/b_1" /> <Button android:id="@+id/b_2" /> <Button android:id="@+id/b_3" /> <Button android:id="@+id/b_4" /> <Button android:id="@+id/b_5" /> <Button android:id="@+id/b_6" /> </GridLayout> 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.