Search code examples
androidnexus-4

Nexus 4 Menu Icon Issue


I have created menu Item in Action Bar and it's not looking proper in Google Nexus4 but looking good in S3.

Both S3 and Nexus 4 are xhdpi devices and having resolution 1280x800.

What am I missing?

Here is a screenshot:

enter image description here


Solution

  • 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;
    }