更改默认android操作栏图标
我正在使用带有最新sdk和api 4.4.2的操作栏。我用我自己的主题;定制黑白。我不知道如何更改默认的返回和共享图标。它们是灰色的,我希望它是纯黑色的。我该怎么做?发布的其他问题和答案没有帮助 我试着使用和设置一个共享图标的绘图,但它没有改变。。。我也不知道如何更改后退按钮更改默认android操作栏图标,android,android-actionbar,shareactionprovider,Android,Android Actionbar,Shareactionprovider,我正在使用带有最新sdk和api 4.4.2的操作栏。我用我自己的主题;定制黑白。我不知道如何更改默认的返回和共享图标。它们是灰色的,我希望它是纯黑色的。我该怎么做?发布的其他问题和答案没有帮助 我试着使用和设置一个共享图标的绘图,但它没有改变。。。我也不知道如何更改后退按钮 <item android:id="@+id/share_option" android:actionProviderClass="android.widget.ShareActionProvider
<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设置主题 ShareActionProvider图标可以使用属性*android:actionModeShareDrawable设置主题。必须包含*前缀,因为此属性不是公共的 但是如果您使用的是Theme.Holo.Light.DarkActionBar,则必须将ShareActionProvider子类化,并使用反射来更改图标 以下是两种情况的示例: 使用主题 梅努伊特姆 结果
向上指示器可以使用属性android:homeAsUpIndicator设置主题 ShareActionProvider图标可以使用属性*android:actionModeShareDrawable设置主题。必须包含*前缀,因为此属性不是公共的 但是如果您使用的是Theme.Holo.Light.DarkActionBar,则必须将ShareActionProvider子类化,并使用反射来更改图标 以下是两种情况的示例: 使用主题 梅努伊特姆 结果
嘿,谢谢你抽出时间。问题解决了。你知道我在哪里可以得到所有可用图标名称的列表吗?例如android:homeAsUpIndicator。。所以我可以改变任何我需要的东西。我也在这里读到过,使用*前缀可能会导致某些设备崩溃。。。这是真的吗?嘿,谢谢你的时间。问题解决了。你知道我在哪里可以得到所有可用图标名称的列表吗?例如android:homeAsUpIndicator。。所以我可以改变任何我需要的东西。我也在这里读到过,使用*前缀可能会导致某些设备崩溃。。。这是真的吗?
<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"/>