Sto provando a impostare l'icona ShareActionProvider, è necessario un bianco fisso anziché quello semitrasparente bianco.Impostazione di un'icona di condivisione personalizzata sulla barra delle azioni ShareActionProvider
Tuttavia, l'impostazione in share_menu.xml e il codice non funzionano. Basta chiedersi se qualcuno ha risolto questo problema prima di estendere ShareActionProvider. (Sto usando ActionBarSherlock)
@Override
public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) {
inflater.inflate(R.menu.share_menu, menu);
MenuItem actionItem = menu.findItem(R.id.share_action_provider);
ShareActionProvider actionProvider = (ShareActionProvider) actionItem.getActionProvider();
actionProvider.setShareIntent(mShareIntent);
// re-setting the icon as it's not being picked up from the menu xml file
actionItem.setIcon(R.drawable.ic_action_share);
super.onCreateOptionsMenu(menu, inflater);
}
share_menu.xml
<item android:id="@+id/share_action_provider"
android:showAsAction="ifRoom"
android:title="@string/share_with"
android:icon="@drawable/ic_action_share"
android:actionProviderClass="com.actionbarsherlock.widget.ShareActionProvider" />
Aggiornamento: provato anche l'impostazione nello stile, ma nessuna gioia
<style name="Theme.MyApp" parent="Theme.Sherlock.Light">
<item name="actionModeStyle">@style/ActionModeStyle</item>
<item name="android:actionModeStyle">@style/ActionModeStyle</item>
</style>
<style name="ActionModeStyle" parent="Widget.Sherlock.ActionMode">
<item name="actionModeShareDrawable">@drawable/ic_action_share</item>
</style>
Funzionerà solo perché la versione interna è utilizzata su tutte le piattaforme. Il built-in 'ShareActionProvider' utilizza una risorsa non pubblica per specificare il drawable, quindi questa soluzione è molto specifica per ActionBarSherlock. –
L'aggiunta di actionModeShareDrawable al tema principale sembra funzionare sia su gingerbread che su ics. – scottyab
Non ha fatto alcuna differenza per me su JB o GB. –