如何在 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/
我在 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/