Die neue schwebende Aktionstaste sollte 56dp x 56dp groß sein und das Symbol darin sollte 24dp x 24dp groß sein . Der Abstand zwischen Symbol und Schaltfläche sollte also 16 dp betragen .
<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 erhalte:
Ich habe das Symbol aus \ material-design-icons-1.0.0 \ content \ drawable-hdpi \ ic_add_black_48dp.png
https://github.com/google/material-design-icons/releases verwendet /tag/1.0.1
Wie kann die Größe des Symbols innerhalb der Schaltfläche genau wie in den Richtlinien beschrieben festgelegt werden?
http://www.google.com/design/spec/components/buttons.html#buttons-floating-action-button
Antworten:
Da Ihr Inhalt 24dp x 24dp ist, sollten Sie das 24dp-Symbol verwenden .
android:scaleType="center"
Stellen Sie dann Ihren ImageButton ein, um eine automatische Größenänderung zu vermeiden.quelle
Machen Sie diesen Eintrag in dimension
Hier ist 36dp die Symbolgröße auf der Gleitkomma-Schaltfläche. Dadurch wird für alle Symbole für schwebende Aktionsschaltflächen eine Größe von 36 dp festgelegt.
Aktualisierungen gemäß Kommentaren
Wenn Sie die Symbolgröße auf eine bestimmte schwebende Aktionsschaltfläche einstellen möchten, wählen Sie einfach die Attribute der schwebenden Aktionsschaltfläche wie app: fabSize = "normal" und android: scaleType = "center".
quelle
Versuchen Sie,
app:maxImageSize="56dp"
anstelle der obigen Antworten zu verwenden, nachdem Sie Ihre Support-Bibliothek auf Version 28.0.0 aktualisiert habenquelle
maxIconSize
Symbols die Symbolgröße ändert.Es gibt drei wichtige XML-Attribute für benutzerdefinierte FABs:
app:fabSize
: Entweder "mini" (40 dp), "normal" (56 dp) (Standard) oder "auto"app:fabCustomSize
: Hiermit wird die Gesamtgröße des FAB festgelegt.app:maxImageSize
: Hiermit wird die Symbolgröße festgelegt.Beispiel:
Die FAB-Auffüllung (der Abstand zwischen dem Symbol und dem Hintergrundkreis, auch Welligkeit genannt ) wird implizit berechnet durch:
Beachten Sie, dass die Ränder der Fab durch die üblichen
android:margin
XML-Tag-Eigenschaften festgelegt werden können.quelle
Die Entwurfsrichtlinien definieren zwei Größen. Sofern es keinen starken Grund gibt, von einer der beiden Abweichungen abzuweichen, kann die Größe mit dem
fabSize
XML-Attribut derFloatingActionButton
Komponente gesteuert werden.Erwägen Sie die Angabe von entweder
app:fabSize="normal"
oderapp:fabSize="mini"
zB:quelle
Mit dem von Ihnen angegebenen Hintergrund ergibt sich auf meinem Gerät die folgende Schaltfläche (Nexus 7 2012).
Sieht gut für mich aus.
quelle
Was ist dein Ziel?
Wenn Sie die Größe des Symbolbildes auf ein größeres einstellen:
Stellen Sie sicher, dass das Bild größer als Ihre Zielgröße ist
(so you can set max image size for your icon)
Meine Zielsymbolbildgröße ist 84dp und die Fab-Größe ist 112dp :
quelle
Wenn Sie androidx 1.0.0 verwenden und eine benutzerdefinierte Fab-Größe verwenden, müssen Sie die benutzerdefinierte Größe mit angeben
Bei Deafult beträgt die Größe 56 dp, und es gibt eine andere Variante, nämlich die kleine Fab mit 40 dp. Wenn Sie etwas verwenden, müssen Sie es angeben, damit die Polsterung korrekt berechnet wird
quelle
layout_width
undlayout_height
. Es funktioniert einfach. Dies ist auch verfügbar amcom.android.support:design:28.0.0
Wie
FAB
ist wieImageView
so Sie könnenscaleType
Attribut ebenfalls die Symbolgröße ändernImageView
. StandardscaleType
für aFAB
istfitCenter
. Sie können das Symbol verwendencenter
und verwendencenterInside
, um es klein bzw. groß zu machen.Alle Werte für das
scaleType
Attribut sind -center, centerCrop, centerInside, fitCenter, fitEnd, fitStart, fitXY
undmatrix
.Weitere Informationen finden Sie unter https://developer.android.com/reference/android/widget/ImageView.ScaleType.html .
quelle
Aus der Antwort von @ IRadha in der Einstellung "Vektorzeichnen"
android:height="_dp"
und Festlegenandroid:scaleType="center"
des Skalentyps, um das Zeichnen auf die jeweils festgelegte Größe festzulegenquelle
Sie können mit den folgenden Einstellungen von FloatingActionButton spielen: android: scaleType und app: maxImageSize. Ich habe ein wünschenswertes Ergebnis, wenn android: scaleType = "centerInside" und app: maxImageSize = "56dp".
quelle