我定义了一个具有ShareActionProvider的菜单项并共享白色图标,如下所示:
<item
android:icon="@drawable/ic_share_white_24dp"
android:id="@+id/action_share"
android:title="@string/action_share"
android:orderInCategory="200"
app:showAsAction="ifRoom"
app:actionProviderClass="android.support.v7.widget.ShareActionProvider"/>
Run Code Online (Sandbox Code Playgroud)
但是当我启动应用程序时,我会得到一个不同的黑色共享图标.如何将共享图标设置为白色?
这是我的结果
tac*_*lux 66
该图标实际上是由ShareActionProvider您提供的,您无法将其更改为afaik.但是,您可以通过textColorPrimary在styles.xml中设置颜色来自定义颜色:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:theme="@style/MyActionBarTheme"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
Run Code Online (Sandbox Code Playgroud)
<style name="MyActionBarTheme" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
<item name="android:textColorPrimary">#fa0</item>
</style>
Run Code Online (Sandbox Code Playgroud)
对于任何自定义图标,您必须自己着色,即.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
for(int i = 0; i < menu.size(); i++){
Drawable drawable = menu.getItem(i).getIcon();
if(drawable != null) {
drawable.mutate();
drawable.setColorFilter(getResources().getColor(R.color.textColorPrimary), PorterDuff.Mode.SRC_ATOP);
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
Bla*_*der 39
这是一个主题问题.根据您当前的主题,您需要设置正确的ActionBar叠加主题.动作提供者读取主题中的值(指示主题是暗还是亮)以确定图标的颜色.
如果您的主题很轻且ActionBar很暗,则ActionBar/Toolbar必须使用主题ThemeOverlay.AppCompat.Dark.ActionBar.
dru*_*uci 32
试试这个 :
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.MENU, menu);
// change color for icon 0
Drawable yourdrawable = menu.getItem(0).getIcon(); // change 0 with 1,2 ...
yourdrawable.mutate();
yourdrawable.setColorFilter(getResources().getColor(R.color.white), PorterDuff.Mode.SRC_IN);
return true;
}
Run Code Online (Sandbox Code Playgroud)
Nik*_*dva 27
添加app:iconTint="@color/yourcolor"您MenuItem的更改图标颜色.
<item
android:icon="@drawable/ic_share_white_24dp"
android:id="@+id/action_share"
android:title="@string/action_share"
android:orderInCategory="200"
app:iconTint="@color/yourcolor"
app:showAsAction="ifRoom"
app:actionProviderClass="android.support.v7.widget.ShareActionProvider"/>
Run Code Online (Sandbox Code Playgroud)
小智 7
在此标记 com.google.android.material.navigation.NavigationView 内设置此行app:itemIconTint="@color/red_warning
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout
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:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<include
layout="@layout/app_bar_main"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer"
app:itemIconTint="@color/red_warning"
/>
</androidx.drawerlayout.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)
小智 6
简短的答案 -->app:iconTint="?android:textColorPrimary"
如果您希望图标颜色为白色,请使用:
android:theme = "@style/ThemeOverlay.MaterialComponents.Dark.ActionBar"
否则,如果您想要黑色,请写入:
android:theme="@style/ThemeOverlay.MaterialComponents.Light"
到工具栏
| 归档时间: |
|
| 查看次数: |
70415 次 |
| 最近记录: |