The reason being icon is small is NEXUS4 is pure Android. The icon size prescribed for xdpi device is 72x72. Your icon size is different and therefore to accomdate nexus4 is showing small icon.
To draw a custom icon with share action provider , you can see following code :
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/contest"
android:actionLayout="@layout/actionbar_view"
android:showAsAction="ifRoom"
android:title="Contest"/>
<item
android:id="@+id/menu_item_share"
android:actionProviderClass="android.widget.ShareActionProvider"
android:showAsAction="ifRoom"/>
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate menu resource file.
getMenuInflater().inflate(R.menu.menu, menu);
// Locate MenuItem with ShareActionProvider
MenuItem item = menu.findItem(R.id.menu_item_share);
MenuItem contestItem = menu.findItem(R.id.contest);
// Fetch and store ShareActionProvider
mShareActionProvider = (ShareActionProvider) item.getActionProvider();
contestItem.getActionView().setOnClickListener(new OnClickListener() {
@Override
public void onClick(final View view) {
// on click code
}
});
return true;
}