O novo botão de ação flutuante deve ser 56dp x 56dp e o ícone dentro dele deve ser 24dp x 24dp . Portanto, o espaço entre o ícone e o botão deve ser 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>
E este é o resultado que obtive :
usei o ícone 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
Como fazer com que o tamanho do ícone dentro do botão seja exatamente como descrito nas diretrizes?
http://www.google.com/design/spec/components/buttons.html#buttons-floating-action-button
Respostas:
Como seu conteúdo é 24dp x 24dp, você deve usar o ícone 24dp . E defina
android:scaleType="center"
no ImageButton para evitar o redimensionamento automático.fonte
Faça esta entrada em dimens
Aqui 36dp é o tamanho do ícone no botão de ponto flutuante. Isso definirá o tamanho de 36dp para todos os ícones do botão de ação flutuante.
Atualizações conforme comentários
Se você deseja definir o tamanho do ícone para um determinado botão de ação flutuante, basta usar os atributos do botão de ação flutuante, como app: fabSize = "normal" e android: scaleType = "center".
fonte
Tente usar em
app:maxImageSize="56dp"
vez das respostas acima depois de atualizar sua biblioteca de suporte para a v28.0.0fonte
maxIconSize
altera o tamanho do ícone.Existem três principais atributos XML para FABs personalizados:
app:fabSize
: "Mini" (40dp), "normal" (56dp) (padrão) ou "automático"app:fabCustomSize
: Isso decidirá o tamanho geral da FAB.app:maxImageSize
: Isso decidirá o tamanho do ícone.Exemplo:
O preenchimento FAB (o espaço entre o ícone e o círculo do plano de fundo, também conhecido como ondulação ) é calculado implicitamente por:
Observe que as margens do fab podem ser definidas pelas
android:margin
propriedades usuais da tag xml.fonte
As diretrizes de design definem dois tamanhos e, a menos que haja um motivo forte para se desviar do uso de qualquer um deles, o tamanho pode ser controlado com o
fabSize
atributo XML doFloatingActionButton
componente.Considere especificar usando
app:fabSize="normal"
ouapp:fabSize="mini"
, por exemplo:fonte
Com o plano de fundo que você forneceu, resulta no botão abaixo no meu dispositivo (Nexus 7 2012)
Parece bom para mim.
fonte
Qual é o seu objetivo?
Se definir o tamanho da imagem do ícone como maior:
Certifique-se de ter um tamanho de imagem maior que o tamanho desejado
(so you can set max image size for your icon)
O tamanho da imagem do meu ícone de destino é 84dp e o tamanho fabuloso é 112dp :
fonte
Se você estiver usando o androidx 1.0.0 e um tamanho fab personalizado, precisará especificar o tamanho personalizado usando
Por surdo, o tamanho é 56dp e há outra variação que é o tamanho pequeno, que é 40dp; se você estiver usando algo, precisará especificá-lo para que o preenchimento seja calculado corretamente.
fonte
layout_width
elayout_height
. Isso simplesmente funciona. Isto também está disponível emcom.android.support:design:28.0.0
Como
FAB
éImageView
assim Você pode usar oscaleType
atributo para alterar o tamanho do ícone da mesma formaImageView
. O padrãoscaleType
para aFAB
éfitCenter
. Você pode usarcenter
ecenterInside
tornar o ícone pequeno e grande, respectivamente.Todos os valores para o
scaleType
atributo são -center, centerCrop, centerInside, fitCenter, fitEnd, fitStart, fitXY
ematrix
.Consulte https://developer.android.com/reference/android/widget/ImageView.ScaleType.html para obter mais detalhes.
fonte
fora da resposta do @ IRadha na configuração de desenho vetorial
android:height="_dp"
e definição do tipo de escala paraandroid:scaleType="center"
definir o desenho para qualquer tamanho definidofonte
Você pode jogar com as seguintes configurações do FloatingActionButton: android: scaleType e app: maxImageSize. Quanto a mim, eu tenho um resultado desejável se android: scaleType = "centerInside" e app: maxImageSize = "56dp".
fonte