通常会为浮动动作按钮设置图标,但我需要设置图像,这样我才能制作圆形图像。
我将它添加到项目中(使用Android Studio-> New - > Image Asset),但图片没有填满整个按钮:
我的xml:
<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>
有关如何修复它的任何想法?该如何正确制作?
答案 0 :(得分:4)
解决方案是将int main()
{
int building = {1,2,3,4 };
int apts = {1,2,3,4,5,6,7,8,9,10 };
vector<unit > units(40);
int vectorCounter = 0;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 10; j++) {
unit myunit(building[i], apts [j]) ;
units[vectorCounter++] = myunit ;
~unit() ;
}
}
属性设置为您的FAB大小。
app:maxImageSize = "56dp"
答案 1 :(得分:2)
为FAB设置以下属性
android:scaleType="center"
如果不起作用,请尝试使用属性
app:fabSize="mini"
答案 2 :(得分:2)
使用以下代码
android:scaleType="fitXY"
答案 3 :(得分:1)
在xml中设置浮动按钮的比例
android:scaleX="2.0"
或者您可以通过编程方式做到这一点:
someButton.setScaleX(2.0f);
someButton.setScaleY(2.0f);
答案 4 :(得分:1)
如果要设置圆形的png图像,解决方法是扩展floatActionButton类,然后覆盖ononMeasure方法并将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"/>
输出
答案 5 :(得分:0)
根据Material Components library,使用doc,您可以使用属性 app:maxImageSize
。
您可以使用自定义维度,但也可以引用这些定义的维度。
<dimen name="design_fab_size_mini">40dp</dimen>
<dimen name="design_fab_size_normal">56dp</dimen>
只需使用:
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
app:srcCompat="@drawable/ic_add_24px"
app:maxImageSize="@dimen/design_fab_size_normal"
../>
这里是标准尺寸(<dimen name="design_fab_image_size">24dp</dimen>
)和design_fab_size_normal
的结果。
答案 6 :(得分:0)
<dimen tools:override="true" name="design_fab_image_size">56dp</dimen>
(I used 56dp cause fab size in guidelines is 56dp)
app:tint="@null"
和android:scaleType="fitCenter"
。