2016-05-12 13 views
0

passen ich folgende Layout haben die Schaltflächen enthält:wie Knopfgröße gleich

enter image description here

Ich bin vor nächsten Probleme:

  1. ersten beiden Tasten auf der linken Seite nicht gleich von die Größe der Schaltflächen auf der rechten Seite des Layouts.
  2. Warum haben die Tasten auf der rechten Seite die Hintergrundfarbe geändert? Ich möchte, dass sie eine Standardhintergrundfarbe haben, wie die auf der linken Seite, oder wie kann ich sie auf eine andere einstellen, aber auch das Bild enthalten?
  3. Für die ersten beiden Schaltflächen, wie kann ich Bildgröße ändern, so dass mein Text horizontal eingestellt ist.

Im Folgenden finden Sie meinen Code finden:

<LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@color/defaultOptionsBackground" 
      android:orientation="horizontal"> 
      <Button 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:text="5.0" 
       android:drawableStart="@drawable/ic_place_white_48dp"/> 
      <Button 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:text="499" 
       android:drawableStart="@drawable/ic_place_white_48dp"/> 
      <Button 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:background="@drawable/ic_place_white_48dp"/> 
      <Button 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:background="@drawable/ic_place_white_48dp"/> 
     </LinearLayout> 

auf den folgenden Link können Sie das Symbol finden: https://design.google.com/icons/index.html#ic_place

Antwort

1
  1. , weil die Höhen eingestellt werden
  2. weil auf wrap_content zwei Tasten setzen Sie Hintergrund und die anderen zwei DrawableStart. Ändern Sie die android:background, um zu etwas anderem zu wechseln. drawableStart wird vor dem Text
  3. ein paddingEnd mit der gleichen Größe der Zeichen auf der start angezeigt werden.

Unter dem XML-Layout, das ich glaube, Sie wollen

<LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@color/defaultOptionsBackground" 
      android:orientation="horizontal"> 
      <Button 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:text="5.0" 
       android:paddingEnd="48dp" 
       android:drawableStart="@drawable/ic_place_white_48dp"/> 
      <Button 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:text="499" 
       android:paddingEnd="48dp" 
       android:drawableStart="@drawable/ic_place_white_48dp"/> 
      <Button 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:paddingEnd="48dp" 
       android:drawableStart="@drawable/ic_place_white_48dp"/> 
      <Button 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:paddingEnd="48dp" 
       android:drawableStart="@drawable/ic_place_white_48dp"/> 
     </LinearLayout> 
+0

Cool, das funktioniert. Letzte Frage. Wie kann ich die letzten beiden Schaltflächen in der Mitte zentrieren? Sieht so aus, als gäbe es kein drawbaresCenter? – Kapparino

+0

in der Mitte ist der Text. Aber wenn es auf der einen Seite und nicht auf der anderen Seite ist .. der Text geht zur Seite. Wenn Sie also auf der einen und nicht auf der anderen Seite zeichnen müssen, erstellen Sie ein transparentes Zeichen, um den Platz zu füllen. Alternativ können Sie mit dem Parameter 'gravity' spielen, um den Text zu positionieren. – Budius

+0

Also in meinem Fall, ich will nur haben ' 'und ich habe mit gravity_layout und gravity mit center-Parameter herumgespielt, aber beides hat das Bild nicht auf die Mitte gesetzt:/ – Kapparino

0

meist Teil Ihrer Frage nach Budius oben beantwortet wurde. Die Antwort auf einen Teil Ihrer zweiten Frage - "Wie kann ich Schaltflächen so einstellen, dass sie unterschiedliche Farben haben, aber auch das Bild enthalten?" - Sie können verschiedene Farben festlegen, indem Sie diese Zeile android: backgroundTint = "@ android: color/holo_orange_dark" im Schaltflächenlayout verwenden.

0
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" 
    android:weightSum="5"> 


    <Button 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="hello" /> 

    <Button 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="hello" /> 


    <Button 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="hello" /> 


    <Button 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="hello" /> 


    <Button 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="hello" /> 


</LinearLayout>