android中的浮动操作按钮无法正确显示

时间:2016-12-13 16:31:49

标签: android floating-action-button

我正在尝试将默认FloatingActionButton图标更改为add circle图标。我从material.io下载了icon ic_add_circle_white_18dp,并将其添加到了andorid项目中的drawable directory。但是当我尝试在我的活动中使用它时,它显示为黑色内部图标,如图像

enter image description here

但我希望FAB图标看起来像

enter image description here

我的FAB图标xml看起来像

<android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="@dimen/fab_margin"
        app:srcCompat="@drawable/ic_add_fab"
        app:elevation="8dp"
        app:backgroundTint="@android:color/holo_blue_light"
        app:rippleColor="@android:color/white"/> 

我已尝试设置app:backgroundTint值,但它不会影响内部图标样式

感谢您的帮助

5 个答案:

答案 0 :(得分:3)

导入与图像资产中的添加图标对应的剪贴画有效:

<强>步骤:

1. Right Click on res.
2. Select New->Image Asset
3. In Icon type, select Action Bar and Tab Icons
4. Provide a name
5. Select ClipArt in Asset type and the click on the Clip Art icon.
6. From the content section select add button
7. In theme set HOLO_DARK
6. Click Next and then finish

enter image description here

enter image description here 要将其用作图标,请在XML中包含以下内容。请注意,使用图标作为来源android:src="@drawable/ic_add_fab"

<android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="@dimen/fab_margin"
        android:src="@drawable/ic_add_fab" />

答案 1 :(得分:2)

尝试下载并使用名称为“add”的图标,而不是“添加圈子”

答案 2 :(得分:1)

而不是app:srcCompat=使用app:src=用于图片。
或使用fab.setImageResource(R.drawable.ic_add);以编程方式设置图像。

答案 3 :(得分:1)

这对我有用

<android.support.design.widget.FloatingActionButton
                   android:id="@+id/logout_btn"
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:src="@mipmap/logout"
                   app:rippleColor="@null"
                   app:backgroundTint="@null"
                   app:fabSize="normal"
                   android:layout_gravity="bottom|center_horizontal"
                   android:scaleType="center"/>

根据要求,src图标应该相同。

我使用了140x140 for xhdpi drawable

答案 4 :(得分:0)

您需要设置scaleType才能正确呈现:

 android:scaleType="center"