gpt4 book ai didi

android - 更改默认的 android 操作栏图标

转载 作者:行者123 更新时间:2023-11-29 16:02:13 25 4
gpt4 key购买 nike

我正在使用带有最新 sdk 和 api (4.4.2) 的操作栏。我正在使用自己的主题;自定义黑白。我不知道如何更改默认的“返回”和“共享”图标。它们是灰色的,我希望它是纯黑色的。我怎样才能做到这一点?发布的其他问题和答案无济于事。

我尝试使用并设置共享图标的可绘制对象,但它没有改变...我也不知道如何更改后退按钮。

enter image description here

<item
android:id="@+id/share_option"
android:actionProviderClass="android.widget.ShareActionProvider"
android:showAsAction="ifRoom"
<!-- android:icon="@drawable/action_share" | This doesn't do the trick -->
android:title="@string/Share"/>

最佳答案

“向上”指示器可以使用属性 android:homeAsUpIndicator 设置主题。

可以使用属性 *android:actionModeShareDrawableShareActionProvider 图标设置主题。包含 * 前缀很重要,因为此属性不是公开的。

但如果您使用的是 Theme.Holo.Light.DarkActionBar,则必须继承 ShareActionProvider 并使用反射来更改图标。

以下是两种情况的示例:

使用主题

<style name="Your.Theme" parent="@android:style/Theme.Holo.Light">
<item name="android:homeAsUpIndicator">@drawable/your_up_indicator</item>
<item name="*android:actionModeShareDrawable">@drawable/your_share_icon</item>
</style>

使用反射

public class YourShareActionProvider extends ShareActionProvider {

private final Drawable mYourShareIcon;

/**
* Constructor for <code>YourShareActionProvider</code>
*
* @param context The {@link Context} to use
*/
public YourShareActionProvider(Context context) {
super(context);
mYourShareIcon = context.getResources().getDrawable(R.drawable.your_share_icon);
}

@Override
public View onCreateActionView(MenuItem forItem) {
final View actionView = super.onCreateActionView(forItem);
try {
final Class<?> acv = Class.forName("android.widget.ActivityChooserView");
final Method setExpandActivityOverflowButtonDrawable = acv.getMethod(
"setExpandActivityOverflowButtonDrawable", Drawable.class);
setExpandActivityOverflowButtonDrawable.invoke(actionView, mYourShareIcon);
} catch (final Exception ignored) {
// Nothing to do
}
return actionView;
}

}

菜单项

<item
android:id="@+id/share_option"
android:actionProviderClass="your.path.to.YourShareActionProvider"
android:showAsAction="ifRoom"
android:title="@string/Share"/>

结果

Example

关于android - 更改默认的 android 操作栏图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23224199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com