如何在 FloatingActionButton 上显示图标?

How do I display icon on FloatingActionButton?

我在 FloatingActionButton 上显示图标时遇到问题。图标失去透明度。我有 compileSdkVersion 28.

依赖项是:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    //noinspection GradleCompatible
    implementation 'com.android.support:appcompat-v7:28.0.0-alpha1'
    //noinspection GradleDynamicVersion
    implementation 'com.android.support:recyclerview-v7:28.0.0-rc02'
    implementation 'com.android.support:design:28.+'
    implementation 'com.android.support:cardview-v7:28.0.0-rc01'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso- 
    core:3.0.2'
    implementation 'com.squareup.picasso:picasso:2.71828'

}

布局为:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorDivider"
tools:context=".activities.MainActivity">

<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerViewId"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbars="vertical" />

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fabAddCity"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:layout_margin="16dp"
    android:clickable="true"
    android:src="@mipmap/ic_plus"
    app:backgroundTint="@color/colorPrimaryDark"
    app:borderWidth="0dp"
    android:focusable="true"/>
</FrameLayout>

看起来像这样:

第一个可绘制对象应位于正确的可绘制对象文件夹中,而不是 mipmap 文件夹中。其次,看起来您正在使用的图像正在显示,但可能不是您想要的颜色。如果是这种情况,您可以在 xml 中使用 android:tint="@color/section_arrowup_color" 对其进行着色,但这可能不起作用,具体取决于图像的格式设置。您也可以通过编程方式进行着色,但这可能会产生相同的效果。最后,您可以创建一个新的图像资产,它是您想要的颜色。由于它是一个加号,您可以轻松地创建一个矢量可绘制对象并在 xml

中设置颜色

问题:

app:backgroundTint="@color/colorPrimaryDark"

它使透明部分具有您选择的背景颜色。

所以你可以用

替换它

android:tint="@android:color/colorPrimaryDark"

android:tint="@android:color/background_light"(如果你想要白色)

或者您可以将您的代码替换为:

<android.support.design.widget.FloatingActionButton
android:id="@+id/fabAddCity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="16dp"
android:clickable="true"
android:tint="@android:color/background_light"
app:srcCompat="@android:drawable/ic_input_add"
app:borderWidth="0dp"
android:focusable="true"/>

我发现你用的是 colorPrimaryDark 作为你的色调,如果你坚持要用,把它改成

android:tint="@android:color/colorPrimaryDark"

最近我遇到了使用问题 28.0.0-** 图书馆的

所以我建议你

implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'

并改变

 compileSdkVersion 27
 targetSdkVersion 27

浮动按钮示例

<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="@android:drawable/ic_dialog_email" />

添加维度

dimens.xml
<resources>
    <!-- Default screen margins, per the Android Design guidelines. -->
    <dimen name="activity_horizontal_margin">16dp</dimen>
    <dimen name="activity_vertical_margin">16dp</dimen>
    <dimen name="fab_margin">16dp</dimen>
</resources>

我建议再次查看示例以获得更多权限 https://www.androidhive.info/2015/12/android-material-design-floating-action-button/