无法更改 Android Studio 上 FloatingActionButton 布局文件中的图标颜色
Unable to change icon color in layout file for a FloatingActionButton on Android Studio
所以,我的布局文件具有以下骨架:
<layout>
<CoordinatorLayout>
<AppBarLayout>
... some tags and stuff ...
</AppBarLayout>
<NestedScrollView>
.... nested scroll view stuff
</NestedScrollView>
<!-- Finally! Here comes.... -->
<FloatingActionButton>
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="8dp"
android:backgroundTint="@color/someDarkBlueColor"
android:tint="@color/colorWhite"
android:src="@drawable/ic_white_camera" />
... closing tags and stuff ....
ic_white_camera如下:
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="200dp" android:height="200dp" android:viewportWidth="24.0" android:viewportHeight="24.0">
<path android:fillColor="@color/colorWhite" android:pathData="M12,12m-3.2,0a3.2,3.2 0,1 1,6.4 0a3.2,3.2 0,1 1,-6.4 0"/>
<path android:fillColor="@color/colorWhite" android:pathData="M9,2L7.17,4L4,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2h-3.17L15,2L9,2zM12,17c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5z"/>
</vector>
@color/colorWhite 是.. 你猜对了。白色...
然而android坚持将相机图标渲染成黑色!
我试过添加 android:tint="@color/colorWhite"
。不行..
添加了 android:foregroundTint="@color/colorWhite"
和... Nada!
还在收到这个:
关于这个有什么线索吗?
向大家致以最诚挚的问候.. :-)
我不确定你真正想要的效果是什么,但你可以尝试评论或删除这一行:
android:backgroundTint="@color/someDarkBlueColor"
或调整someDarkBlueColor
的值。
如果您使用 com.google.android.material
包中的 FloatingActionButton
,您应该添加 app:tint
而不是 android:tint
。然后在你的 xml 中你应该使用 app:tint="@color/colorWhite"
而不是 android:tint="@color/colorWhite"
.
右边的attributes是:
<com.google.android.material.floatingactionbutton.FloatingActionButton
app:srcCompat="@drawable/ic_white_camera"
app:tint="@color/colorWhite"
app:backgroundTint="@color/someDarkBlueColor"/>
app:srcCompat
对于与 VectorDrawable
一起工作很重要。
所以,我的布局文件具有以下骨架:
<layout>
<CoordinatorLayout>
<AppBarLayout>
... some tags and stuff ...
</AppBarLayout>
<NestedScrollView>
.... nested scroll view stuff
</NestedScrollView>
<!-- Finally! Here comes.... -->
<FloatingActionButton>
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="8dp"
android:backgroundTint="@color/someDarkBlueColor"
android:tint="@color/colorWhite"
android:src="@drawable/ic_white_camera" />
... closing tags and stuff ....
ic_white_camera如下:
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="200dp" android:height="200dp" android:viewportWidth="24.0" android:viewportHeight="24.0">
<path android:fillColor="@color/colorWhite" android:pathData="M12,12m-3.2,0a3.2,3.2 0,1 1,6.4 0a3.2,3.2 0,1 1,-6.4 0"/>
<path android:fillColor="@color/colorWhite" android:pathData="M9,2L7.17,4L4,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2h-3.17L15,2L9,2zM12,17c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5z"/>
</vector>
@color/colorWhite 是.. 你猜对了。白色...
然而android坚持将相机图标渲染成黑色!
我试过添加 android:tint="@color/colorWhite"
。不行..
添加了 android:foregroundTint="@color/colorWhite"
和... Nada!
还在收到这个:
关于这个有什么线索吗?
向大家致以最诚挚的问候.. :-)
我不确定你真正想要的效果是什么,但你可以尝试评论或删除这一行:
android:backgroundTint="@color/someDarkBlueColor"
或调整someDarkBlueColor
的值。
如果您使用 com.google.android.material
包中的 FloatingActionButton
,您应该添加 app:tint
而不是 android:tint
。然后在你的 xml 中你应该使用 app:tint="@color/colorWhite"
而不是 android:tint="@color/colorWhite"
.
右边的attributes是:
<com.google.android.material.floatingactionbutton.FloatingActionButton
app:srcCompat="@drawable/ic_white_camera"
app:tint="@color/colorWhite"
app:backgroundTint="@color/someDarkBlueColor"/>
app:srcCompat
对于与 VectorDrawable
一起工作很重要。