如何在FloatingActionButton上显示图标?

时间:2018-08-29 03:50:45

标签: android floating-action-button

我在FloatingActionButton上显示图标时遇到问题。图标失去透明度。我有compedSdkVersion 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>

它看起来像这样:

3 个答案:

答案 0 :(得分:1)

问题: 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"

答案 1 :(得分:1)

最近我遇到使用问题 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" />

添加Dimesn

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/

答案 2 :(得分:0)

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