如何设置浮动操作按钮图像以填充按钮?

问题描述 投票:7回答:5

通常图标设置为浮动动作按钮,但我需要设置图像,所以我可以制作圆形图像。

我将它添加到项目中(使用Android Studio-> New - > Image Asset),但图像没有填满整个按钮:

enter image description here

我们hml:

<com.github.clans.fab.FloatingActionMenu
    android:id="@+id/run_menu"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:paddingBottom="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:visibility="visible"
    fab:fab_colorNormal="#DA4336"
    fab:fab_colorPressed="#E75043"
    fab:fab_colorRipple="#99FFFFFF"
    fab:fab_shadowColor="#66000000"
    fab:fab_showShadow="true"
    fab:layout_constraintBottom_toBottomOf="parent"
    fab:layout_constraintHorizontal_bias="0.0"
    fab:layout_constraintLeft_toLeftOf="parent"
    fab:layout_constraintRight_toRightOf="parent"
    fab:layout_constraintTop_toTopOf="parent"
    fab:layout_constraintVertical_bias="0.0"
    fab:menu_backgroundColor="#ccffffff"
    fab:menu_fab_label="Choose an action"
    fab:menu_labels_colorNormal="#333333"
    fab:menu_labels_colorPressed="#444444"
    fab:menu_labels_colorRipple="#66FFFFFF"
    fab:menu_labels_ellipsize="end"
    fab:menu_labels_maxLines="-1"
    fab:menu_labels_position="left"
    fab:menu_labels_showShadow="true"
    fab:menu_labels_singleLine="true"
    fab:menu_openDirection="up"
    android:layout_height="0dp"
    android:layout_width="0dp">

    <com.github.clans.fab.FloatingActionButton
        android:id="@+id/shop"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/store"
        fab:fab_label="Store" />

</com.github.clans.fab.FloatingActionMenu>

关于如何修复它的任何想法?应该如何正确制作?

android android-button floating-action-button
5个回答
6
投票

解决方案是将app:maxImageSize = "56dp"属性设置为您的FAB大小。

  1. 拥有图像或矢量资产,最好是完美的圆形,非常适合游说(没有空白边缘)。
  2. 知道实际的size of Floating Action Bar (FAB) - 默认(56 x 56dp)或迷你(40 x 40dp)。
  3. 因此XML代码:
<com.google.android.material.floatingactionbutton.FloatingActionButton
   android:src="@drawable/perfect_fit_circle_image"
   app:maxImageSize="56dp"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content" />

2
投票

为FAB设置以下属性

android:scaleType="center"

如果这不起作用尝试使用属性

app:fabSize="mini"


2
投票

使用以下代码

android:scaleType="fitXY"

1
投票

在xml中设置浮动按钮的比例

android:scaleX="2.0"

或者您可以以编程方式执行此操作:

someButton.setScaleX(2.0f);
someButton.setScaleY(2.0f);

1
投票

如果你正在设置一个圆形的png图像,那么解决这个问题就是扩展floatingActionButton类,然后重写on onMeasure方法并将padding设置为0,scaleType为centerCrop

public class FloatingImageButton extends FloatingActionButton {


public FloatingImageButton(Context context) {
    super(context);
}

public FloatingImageButton(Context context, AttributeSet attrs) {
    super(context, attrs);
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    setPadding(0, 0, 0, 0);
    setScaleType(ScaleType.CENTER_CROP);


}
}

xml样本

    <com.tabz.app.FloatingImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/camera_circle"
    android:layout_gravity="bottom|end"
    android:layout_margin="16dp"/>

产量

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.