通常图标设置为浮动动作按钮,但我需要设置图像,所以我可以制作圆形图像。
我将它添加到项目中(使用Android Studio-> New - > Image Asset),但图像没有填满整个按钮:
我们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>
关于如何修复它的任何想法?应该如何正确制作?
解决方案是将app:maxImageSize = "56dp"
属性设置为您的FAB大小。
<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" />
为FAB设置以下属性
android:scaleType="center"
如果这不起作用尝试使用属性
app:fabSize="mini"
使用以下代码
android:scaleType="fitXY"
在xml中设置浮动按钮的比例
android:scaleX="2.0"
或者您可以以编程方式执行此操作:
someButton.setScaleX(2.0f);
someButton.setScaleY(2.0f);
如果你正在设置一个圆形的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"/>
产量