95

Floating button Die neue Aktion Floating-Taste sollte 56dp x 56dp und das Symbol im Inneren sollte 24dp x 24dp sein. Der Abstand zwischen Symbol und Schaltfläche sollte also 16dp sein.einstellen Icongröße Aktionstaste Floating (fab)

<ImageButton 
    android:id="@+id/fab_add" 
    android:layout_width="56dp" 
    android:layout_height="56dp" 
    android:layout_gravity="bottom|right" 
    android:layout_marginBottom="16dp" 
    android:layout_marginRight="16dp" 
    android:background="@drawable/ripple_oval" 
    android:elevation="8dp" 
    android:src="@drawable/ic_add_black_48dp" /> 

ripple_oval.xml

<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    android:color="?android:colorControlHighlight"> 
    <item> 
     <shape android:shape="oval"> 
      <solid android:color="?android:colorAccent" /> 
     </shape> 
    </item> 
</ripple> 

Und das ist das Ergebnis, das ich bekommen:
Floating button result
ich das Symbol verwendet, um aus \ Material-Design-Ikonen-1.0.0 \ content \ Zeichnungs-hdpi \ ic_add_black_48dp.png
https://github.com/google/material-design-icons/releases/tag/1.0.1

Wie wird die Größe des Symbols innerhalb der Schaltfläche genau wie in den Leitlinien beschrieben?

http://www.google.com/design/spec/components/buttons.html#buttons-floating-action-button

Antwort

130

Da Ihr Inhalt 24dp x 24dp ist, sollten Sie 24dp icon verwenden. Stellen Sie dann android:scaleType="center" in Ihrem ImageButton ein, um eine automatische Größenanpassung zu vermeiden.

+0

Können Sie erklären oder einen Link zu einer Website, warum zum Beispiel in ** Drawable-hdpi ** Ordner gibt es _18dp.png, _24dp.png, _36dp.png, _48dp. PNG Bilder. – vovahost

+0

Ich verstehe deine Frage nicht, es gibt 18dp, 24dp, 36dp und 48dp für Bilder unterschiedlicher Größe. –

+0

Erinnerst du dich an die alten Android_Design_Icons, die nur eine Variante des Icons im hdpi-Ordner hatten, die 48px x 48px betrug. Warum jetzt im HDpi-Ordner gibt es 4 verschiedene Auflösung für das gleiche Symbol, d. H. 27px x 27 px, 36px x 36px, 54px x 54px, 72px x 72px? – vovahost

11
<ImageButton 
     android:background="@drawable/action_button_bg" 
     android:layout_width="56dp" 
     android:layout_height="56dp" 
     android:padding="16dp" 
     android:src="@drawable/ic_add_black_48dp" 
     android:scaleType="fitXY" 
     android:elevation="8dp"/> 

Vor dem Hintergrund Sie es unten-Taste auf dem Gerät (Nexus 7 2012)

enter image description here

Sieht mir gute Ergebnisse zur Verfügung gestellt.

+4

ich die Polsterung gesetzt wurde, aber es tut sich nichts. Und die richtige Auffüllung wäre 16 dp nicht 32dp – vovahost

61

Fabrikat dieser Eintrag in dimens

<!--Floating action button--> 
<dimen name="design_fab_image_size" tools:override="true">36dp</dimen> 

Hier 36dp ist Symbole auf Punkt-Taste schweben. Dies wird 36dp Größe für alle Symbole für die schwimmende Aktionsschaltfläche festlegen.

Updates Per

Kommentare Wenn Sie Symbolgröße zu bestimmten Floating Action-Taste festlegen möchten, dann müssen Sie gehen mit Button-Aktion Schwimmdock Attribute wie App: fabSize = "normal" und Android: Scaletype =“ Center".

<!--app:fabSize decides size of floating action button You can use normal, auto or mini as per need--> 
    app:fabSize="normal" 

    <!--android:scaleType decides how the icon drawable will be scaled on Floating action button. You can use center(to show scr image as original), fitXY, centerCrop, fitCenter, fitEnd, fitStart, centerInside.--> 
    android:scaleType="center" 
+3

Das ist genau das, was ich brauchte - einfach und einfach. Danke fürs Schreiben. – Blisterpeanuts

+0

Dies scheint nicht mit https://github.com/Clans/FloatingActionButton zu funktionieren :( – marienke

+1

Ja. Es funktioniert nicht mit https://github.com/Clans/FloatingActionButton. Es funktioniert, wenn Sie androids verwenden FloatingActionButton – Abhishek

18

Die Design-Richtlinien definieren zwei Größen und es wäre denn, ein starker Grund von entweder abweichen, kann die Größe mit dem fabSize XML-Attribute der FloatingActionButton Komponente gesteuert werden. Angabe

Betrachten entweder app:fabSize="normal" oder app:fabSize="mini", z.B .:

<android.support.design.widget.FloatingActionButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_done_white_24px" 
    app:fabSize="mini" /> 
3

Wie FAB wie ist ImageView so können Sie verwenden scaleType Attribut mit der Symbolgröße ebenfalls ImageView zu ändern. Standard scaleType für eine FAB ist fitCenter.Sie können center und centerInside verwenden, um das Symbol klein bzw. groß zu machen.

Alle Werte für scaleType Attribut sind - center, centerCrop, centerInside, fitCenter, fitEnd, fitStart, fitXY und matrix.

Weitere Details finden Sie unter https://developer.android.com/reference/android/widget/ImageView.ScaleType.html.

1

weg von @ IRadha Antwort in ziehbar Vektor android:height="_dp" und Einstellen der Skala Typ android:scaleType="center" Einstellung setzt die ziehbar auf das, was Größe