Le nouveau bouton d'action flottant doit être 56dp x 56dp et l'icône à l'intérieur doit être 24dp x 24dp . L'espace entre l'icône et le bouton doit donc être de 16dp .
<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>
Et voici le résultat que j'obtiens:
j'ai utilisé l'icône de \ material-design-icons-1.0.0 \ content \ drawable-hdpi \ ic_add_black_48dp.png
https://github.com/google/material-design-icons/releases /tag/1.0.1
Comment faire en sorte que la taille de l'icône à l'intérieur du bouton soit exactement celle décrite dans les directives?
http://www.google.com/design/spec/components/buttons.html#buttons-floating-action-button
Réponses:
Comme votre contenu est de 24dp x 24dp, vous devez utiliser l' icône 24dp . Et puis définissez
android:scaleType="center"
dans votre ImageButton pour éviter le redimensionnement automatique.la source
Faire cette entrée en dimens
Ici, 36dp est la taille de l'icône sur le bouton à virgule flottante. Cela définira une taille de 36dp pour toutes les icônes du bouton d'action flottant.
Mises à jour selon les commentaires
Si vous souhaitez définir la taille de l'icône sur un bouton d'action flottant particulier, utilisez simplement les attributs du bouton d'action flottant comme app: fabSize = "normal" et android: scaleType = "center".
la source
Essayez d'utiliser à la
app:maxImageSize="56dp"
place des réponses ci-dessus après avoir mis à jour votre bibliothèque de support vers la v28.0.0la source
maxIconSize
change la taille de l'icône.Il existe trois attributs XML clés pour les FAB personnalisés:
app:fabSize
: Soit «mini» (40dp), «normal» (56dp) (par défaut) ou «auto»app:fabCustomSize
: Ceci décidera de la taille globale du FAB.app:maxImageSize
: Cela décidera de la taille de l'icône.Exemple:
Le remplissage FAB (l'espace entre l'icône et le cercle d'arrière-plan, aka ondulation ) est calculé implicitement par:
Notez que les marges du fab peuvent être définies par les
android:margin
propriétés habituelles des balises xml.la source
Les directives de conception définissent deux tailles et à moins qu'il n'y ait une bonne raison de ne pas utiliser l'une ou l'autre, la taille peut être contrôlée avec l'
fabSize
attribut XML duFloatingActionButton
composant.Pensez à spécifier en utilisant soit
app:fabSize="normal"
ouapp:fabSize="mini"
, par exemple:la source
Avec l'arrière-plan que vous avez fourni, le bouton ci-dessous apparaît sur mon appareil (Nexus 7 2012)
Cela me semble correct.
la source
Quel est ton but?
Si la taille de l'image de l'icône est plus grande:
Assurez-vous d'avoir une taille d'image plus grande que votre taille cible
(so you can set max image size for your icon)
La taille d'image de mon icône cible est de 84dp et la taille fab est de 112dp :
la source
Si vous utilisez androidx 1.0.0 et utilisez une taille fab personnalisée, vous devrez spécifier la taille personnalisée en utilisant
Par sourd, la taille est de 56dp et il y a une autre variation qui est la fab petite taille qui est de 40dp, si vous utilisez quelque chose, vous devrez le spécifier pour que le remplissage soit calculé correctement
la source
layout_width
etlayout_height
. Cela fonctionne juste. Ceci est également disponible surcom.android.support:design:28.0.0
Comme
FAB
c'est leImageView
cas Vous pouvez également utiliser l'scaleType
attribut pour modifier la taille de l'icôneImageView
. La valeur par défautscaleType
pour aFAB
estfitCenter
. Vous pouvez utilisercenter
etcenterInside
pour rendre l'icône respectivement petite et grande.Toutes les valeurs d'
scaleType
attribut sont -center, centerCrop, centerInside, fitCenter, fitEnd, fitStart, fitXY
etmatrix
.Voir https://developer.android.com/reference/android/widget/ImageView.ScaleType.html pour plus de détails.
la source
hors de la réponse de @ IRadha dans le paramètre de dessin vectoriel
android:height="_dp"
et en définissant le type d'échelle pourandroid:scaleType="center"
définir le dessinable à la taille définiela source
Vous pouvez jouer avec les paramètres suivants de FloatingActionButton: android: scaleType et app: maxImageSize. Quant à moi, j'ai un résultat souhaitable si android: scaleType = "centerInside" et app: maxImageSize = "56dp".
la source