Example usage for android.graphics.drawable Drawable setColorFilter

List of usage examples for android.graphics.drawable Drawable setColorFilter

Introduction

In this page you can find the example usage for android.graphics.drawable Drawable setColorFilter.

Prototype

public void setColorFilter(@ColorInt int color, @NonNull PorterDuff.Mode mode) 

Source Link

Document

Specify a color and Porter-Duff mode to be the color filter for this drawable.

Usage

From source file:org.kiwix.kiwixmobile.KiwixMobileActivity.java

public void toggleImageViewGrayFilter(ImageView image, boolean state) {
    Drawable originalIcon = image.getDrawable();
    Drawable res = originalIcon.mutate();
    if (state) {//from w  ww. j a  v a  2 s  .com
        res.clearColorFilter();
    } else {
        res.setColorFilter(Color.GRAY, PorterDuff.Mode.SRC_IN);
    }
    image.setImageDrawable(res);
}

From source file:org.mariotaku.twidere.fragment.support.UserFragment.java

private void showRelationship(ParcelableUser user, Relationship relationship) {
    mRelationship = relationship;/* w  w  w .  ja v  a  2s . c o  m*/
    if (user == null)
        return;
    invalidateOptionsMenu();
    final boolean isMyself = user.account_id == user.id;
    if (isMyself) {
        mFollowButton.setText(R.string.edit);
        mFollowButton.setVisibility(View.VISIBLE);
    } else if (relationship != null) {
        final int drawableRes;
        mFollowButton.setEnabled(!relationship.isSourceBlockedByTarget());
        if (relationship.isSourceBlockedByTarget()) {
            mPagesErrorContainer.setVisibility(View.VISIBLE);
            final String displayName = mUserColorNameManager.getDisplayName(user, mNameFirst, true);
            mPagesErrorText.setText(getString(R.string.blocked_by_user_summary, displayName));
            mPagesErrorIcon.setImageResource(R.drawable.ic_info_error_generic);
            mPagesContent.setVisibility(View.GONE);
        } else if (!relationship.isSourceFollowingTarget() && user.is_protected) {
            mPagesErrorContainer.setVisibility(View.VISIBLE);
            final String displayName = mUserColorNameManager.getDisplayName(user, mNameFirst, true);
            mPagesErrorText.setText(getString(R.string.user_protected_summary, displayName));
            mPagesErrorIcon.setImageResource(R.drawable.ic_info_locked);
            mPagesContent.setVisibility(View.GONE);
        } else {
            mPagesErrorContainer.setVisibility(View.GONE);
            mPagesErrorText.setText(null);
            mPagesContent.setVisibility(View.VISIBLE);
        }
        if (relationship.isSourceBlockingTarget()) {
            mFollowButton.setText(R.string.unblock);
            drawableRes = R.drawable.ic_follow_blocked;
        } else if (relationship.isSourceFollowingTarget()) {
            mFollowButton.setText(R.string.unfollow);
            if (relationship.isTargetFollowingSource()) {
                drawableRes = R.drawable.ic_follow_bidirectional;
            } else {
                drawableRes = R.drawable.ic_follow_outgoing;
            }
        } else if (user.is_follow_request_sent) {
            mFollowButton.setText(R.string.requested);
            if (relationship.isTargetFollowingSource()) {
                drawableRes = R.drawable.ic_follow_incoming;
            } else {
                drawableRes = R.drawable.ic_follow_pending;
            }
        } else {
            mFollowButton.setText(R.string.follow);
            if (relationship.isTargetFollowingSource()) {
                drawableRes = R.drawable.ic_follow_incoming;
            } else {
                drawableRes = R.drawable.ic_follow_none;
            }
        }
        final Drawable icon = ResourcesCompat.getDrawable(getResources(), drawableRes, null);
        final int iconSize = Math.round(mFollowButton.getTextSize() * 1.4f);
        icon.setBounds(0, 0, iconSize, iconSize);
        icon.setColorFilter(mFollowButton.getCurrentTextColor(), Mode.SRC_ATOP);
        mFollowButton.setCompoundDrawables(icon, null, null, null);
        mFollowButton.setCompoundDrawablePadding(Math.round(mFollowButton.getTextSize() * 0.25f));

        final ContentResolver resolver = getContentResolver();
        final ContentValues cachedValues = ParcelableUser.makeCachedUserContentValues(user);
        resolver.insert(CachedUsers.CONTENT_URI, cachedValues);
        mFollowButton.setVisibility(View.VISIBLE);
    } else {
        mFollowButton.setText(null);
        mFollowButton.setVisibility(View.GONE);
        mPagesErrorContainer.setVisibility(View.GONE);
        mPagesContent.setVisibility(View.VISIBLE);
    }
}

From source file:dev.memento.MainActivity.java

/**
 * Converts the given drawable to a gray image. This method may be 
 * used to simulate the color of disable icons in Honeycomb's ActionBar.
 * /*from www  .  j a  va2 s  .  c om*/
 * @return a version of the given drawable with a color filter applied.
 */
private Drawable convertDrawableToGrayScale(Drawable drawable) {
    if (drawable == null)
        return null;

    Drawable res = drawable.mutate();
    res.setColorFilter(Color.GRAY, Mode.SRC_IN);
    return res;
}

From source file:com.dwdesign.tweetings.activity.ComposeActivity.java

private void setMenu() {
    final Menu menu = mMenuBar.getMenu();
    final int activated_color = getResources().getColor(R.color.holo_blue_bright);
    final MenuItem itemAddImage = menu.findItem(MENU_ADD_IMAGE);
    final MenuItem itemLibrary = menu.findItem(MENU_LIBRARY_MENU);
    final Drawable iconAddImage = itemAddImage.getIcon().mutate();
    final Drawable iconLibrary = itemLibrary.getIcon().mutate();
    boolean menuSelected = false;
    if (mIsImageAttached && !mIsPhotoAttached) {
        iconAddImage.setColorFilter(activated_color, Mode.MULTIPLY);
        itemAddImage.setTitle(R.string.remove_image);
        menuSelected = true;//from   w  w  w . ja  v  a  2  s  . com
    } else {
        iconAddImage.clearColorFilter();
        itemAddImage.setTitle(R.string.add_image);
    }
    final MenuItem itemTakePhoto = menu.findItem(MENU_TAKE_PHOTO);
    final Drawable iconTakePhoto = itemTakePhoto.getIcon().mutate();
    if (!mIsImageAttached && mIsPhotoAttached) {
        iconTakePhoto.setColorFilter(activated_color, Mode.MULTIPLY);
        itemTakePhoto.setTitle(R.string.remove_photo);
        menuSelected = true;
    } else {
        iconTakePhoto.clearColorFilter();
        itemTakePhoto.setTitle(R.string.take_photo);
    }
    if (menuSelected == true) {
        iconLibrary.setColorFilter(activated_color, Mode.MULTIPLY);
    } else {
        iconLibrary.clearColorFilter();
    }
    final MenuItem itemAttachLocation = menu.findItem(MENU_ADD_LOCATION);
    final Drawable iconAttachLocation = itemAttachLocation.getIcon().mutate();
    final boolean attach_location = mPreferences.getBoolean(PREFERENCE_KEY_ATTACH_LOCATION, false);
    if (attach_location && getLocation()) {
        iconAttachLocation.setColorFilter(activated_color, Mode.MULTIPLY);
        itemAttachLocation.setTitle(R.string.remove_location);
    } else {
        mPreferences.edit().putBoolean(PREFERENCE_KEY_ATTACH_LOCATION, false).commit();
        iconAttachLocation.clearColorFilter();
        itemAttachLocation.setTitle(R.string.add_location);
    }
    final MenuItem itemMore = menu.findItem(R.id.more_submenu);

    boolean moreHighlighted = false;
    if (itemMore != null) {
        final MenuItem itemDrafts = menu.findItem(R.id.drafts);
        final MenuItem itemToggleSensitive = menu.findItem(MENU_TOGGLE_SENSITIVE);
        if (itemMore != null) {
            if (itemDrafts != null) {
                final Cursor drafts_cur = getContentResolver().query(Drafts.CONTENT_URI, new String[0], null,
                        null, null);
                final Drawable iconMore = itemMore.getIcon().mutate();
                final Drawable iconDrafts = itemDrafts.getIcon().mutate();
                if (drafts_cur.getCount() > 0) {
                    moreHighlighted = true;
                    iconDrafts.setColorFilter(activated_color, Mode.MULTIPLY);
                } else {
                    iconDrafts.clearColorFilter();
                }
                drafts_cur.close();
            }
            if (itemToggleSensitive != null) {
                final boolean has_media = (mIsImageAttached || mIsPhotoAttached) && mImageUri != null;
                if (has_media && isNullOrEmpty(mUploadProvider)) {
                    itemToggleSensitive.setVisible(true);
                } else {
                    itemToggleSensitive.setVisible(false);
                }
                if (has_media && isNullOrEmpty(mUploadProvider)) {
                    final Drawable iconToggleSensitive = itemToggleSensitive.getIcon().mutate();
                    if (mIsPossiblySensitive) {
                        moreHighlighted = true;
                        iconToggleSensitive.setColorFilter(activated_color, Mode.MULTIPLY);
                    } else {
                        iconToggleSensitive.clearColorFilter();
                    }
                }
            }
        }
    }
    if (mScheduleDate != null) {
        final MenuItem itemSchedule = menu.findItem(R.id.schedule_tweet);
        final Drawable iconSchedule = itemSchedule.getIcon().mutate();
        iconSchedule.setColorFilter(activated_color, Mode.MULTIPLY);
        moreHighlighted = true;
        itemSchedule.setTitle(getString(R.string.schedule_clear));
    } else {
        final MenuItem itemSchedule = menu.findItem(R.id.schedule_tweet);
        final Drawable iconSchedule = itemSchedule.getIcon().mutate();
        iconSchedule.clearColorFilter();
        itemSchedule.setTitle(getString(R.string.schedule_tweet));
    }

    final String consumer_key = mPreferences.getString(PREFERENCE_KEY_CONSUMER_KEY, null);
    final String consumer_secret = mPreferences.getString(PREFERENCE_KEY_CONSUMER_SECRET, null);

    if (!isNullOrEmpty(consumer_key) && !isNullOrEmpty(consumer_secret)) {
        final MenuItem itemSchedule = menu.findItem(R.id.schedule_tweet);

        itemSchedule.setVisible(false);
    }

    final MenuItem bufferItem = menu.findItem(MENU_ADD_TO_BUFFER);
    if (bufferItem != null) {
        final String buffer_authorised = mPreferences.getString(PREFERENCE_KEY_BUFFERAPP_ACCESS_TOKEN, null);
        final Drawable iconBuffer = bufferItem.getIcon().mutate();
        if (buffer_authorised != null && !buffer_authorised.equals("")) {
            bufferItem.setVisible(true);
            if (mIsBuffer) {
                iconBuffer.setColorFilter(activated_color, Mode.MULTIPLY);
                moreHighlighted = true;
            } else {
                iconBuffer.clearColorFilter();
            }
        } else {
            bufferItem.setVisible(false);
            mIsBuffer = false;
        }
    }
    if (itemMore != null) {
        final Drawable iconMore = itemMore.getIcon().mutate();
        if (moreHighlighted == true) {
            iconMore.setColorFilter(activated_color, Mode.MULTIPLY);
        } else {
            iconMore.clearColorFilter();
        }
    }
    mMenuBar.invalidate();
    invalidateSupportOptionsMenu();
}

From source file:com.qiscus.sdk.ui.fragment.QiscusBaseChatFragment.java

protected void onApplyChatConfig() {
    Drawable buttonBg;

    rootView.setBackground(chatConfig.getChatRoomBackground());
    swipeRefreshLayout.setColorSchemeResources(chatConfig.getSwipeRefreshColorScheme());
    sendButton.setImageResource(chatConfig.getShowAttachmentPanelIcon());
    messageEditText.setHint(chatConfig.getMessageFieldHint());

    if (emptyChatImageView != null) {
        emptyChatImageView.setImageResource(chatConfig.getEmptyRoomImageResource());
    }/*from   ww w.ja  v a  2s  . c o  m*/
    if (emptyChatTitleView != null) {
        emptyChatTitleView.setText(chatConfig.getEmptyRoomTitle());
    }
    if (emptyChatDescView != null) {
        emptyChatDescView.setText(chatConfig.getEmptyRoomSubtitle());
    }
    if (addImageButton != null) {
        addImageButton.setImageResource(chatConfig.getAddPictureIcon());
        buttonBg = ContextCompat.getDrawable(Qiscus.getApps(), R.drawable.qiscus_gallery_button_bg);
        buttonBg.setColorFilter(
                ContextCompat.getColor(Qiscus.getApps(), chatConfig.getAddPictureBackgroundColor()),
                PorterDuff.Mode.SRC_ATOP);
        addImageButton.setBackground(buttonBg);
    }
    if (addImageTextView != null) {
        addImageTextView.setText(chatConfig.getAddPictureText());
    }
    if (takeImageButton != null) {
        takeImageButton.setImageResource(chatConfig.getTakePictureIcon());
        buttonBg = ContextCompat.getDrawable(Qiscus.getApps(), R.drawable.qiscus_camera_button_bg);
        buttonBg.setColorFilter(
                ContextCompat.getColor(Qiscus.getApps(), chatConfig.getTakePictureBackgroundColor()),
                PorterDuff.Mode.SRC_ATOP);
        takeImageButton.setBackground(buttonBg);
    }
    if (takeImageTextView != null) {
        takeImageTextView.setText(chatConfig.getTakePictureText());
    }
    if (addFileButton != null) {
        addFileButton.setImageResource(chatConfig.getAddFileIcon());
        buttonBg = ContextCompat.getDrawable(Qiscus.getApps(), R.drawable.qiscus_file_button_bg);
        buttonBg.setColorFilter(
                ContextCompat.getColor(Qiscus.getApps(), chatConfig.getAddFileBackgroundColor()),
                PorterDuff.Mode.SRC_ATOP);
        addFileButton.setBackground(buttonBg);
    }
    if (addFileTextView != null) {
        addFileTextView.setText(chatConfig.getAddFileText());
    }
    if (recordAudioButton != null) {
        recordAudioButton.setImageResource(chatConfig.getRecordAudioIcon());
        buttonBg = ContextCompat.getDrawable(Qiscus.getApps(), R.drawable.qiscus_record_button_bg);
        buttonBg.setColorFilter(ContextCompat.getColor(Qiscus.getApps(), chatConfig.getRecordBackgroundColor()),
                PorterDuff.Mode.SRC_ATOP);
        recordAudioButton.setBackground(buttonBg);
    }
    if (recordAudioTextView != null) {
        recordAudioTextView.setText(chatConfig.getRecordText());
    }
    if (hideAttachmentButton != null) {
        hideAttachmentButton.setImageResource(chatConfig.getHideAttachmentPanelIcon());
        buttonBg = ContextCompat.getDrawable(Qiscus.getApps(), R.drawable.qiscus_keyboard_button_bg);
        buttonBg.setColorFilter(
                ContextCompat.getColor(Qiscus.getApps(), chatConfig.getHideAttachmentPanelBackgroundColor()),
                PorterDuff.Mode.SRC_ATOP);
        hideAttachmentButton.setBackground(buttonBg);
    }
    if (recordAudioPanel != null) {
        recordAudioPanel.setButtonStopRecord(chatConfig.getStopRecordIcon());
        recordAudioPanel.setButtonCancelRecord(chatConfig.getCancelRecordIcon());
    }
    if (toggleEmojiButton != null) {
        toggleEmojiButton.setImageResource(chatConfig.getShowEmojiIcon());
    }

    if (addImageLayout != null) {
        addImageLayout.setVisibility(chatConfig.isEnableAddPicture() ? View.VISIBLE : View.GONE);
    }
    if (takeImageLayout != null) {
        takeImageLayout.setVisibility(chatConfig.isEnableTakePicture() ? View.VISIBLE : View.GONE);
    }
    if (addFileLayout != null) {
        addFileLayout.setVisibility(chatConfig.isEnableAddFile() ? View.VISIBLE : View.GONE);
    }
    if (recordAudioLayout != null) {
        recordAudioLayout.setVisibility(chatConfig.isEnableRecordAudio() ? View.VISIBLE : View.GONE);
    }
}

From source file:org.mariotaku.twidere.util.Utils.java

public static void setMenuForStatus(final Context context, final Menu menu, final ParcelableStatus status) {
    if (context == null || menu == null || status == null)
        return;//from  www  .  j  ava  2s  . com
    final int activated_color = context.getResources().getColor(R.color.holo_blue_bright);
    final MenuItem delete = menu.findItem(R.id.delete_submenu);
    if (delete != null) {
        delete.setVisible(status.account_id == status.user_id && !isMyRetweet(status));
    }
    final MenuItem retweet = menu.findItem(MENU_RETWEET);
    if (retweet != null) {
        final Drawable icon = retweet.getIcon().mutate();
        retweet.setVisible(!status.is_protected || isMyRetweet(status));
        if (isMyRetweet(status)) {
            icon.setColorFilter(activated_color, Mode.MULTIPLY);
            retweet.setTitle(R.string.cancel_retweet);
        } else {
            icon.clearColorFilter();
            retweet.setTitle(R.string.retweet);
        }
    }
    final MenuItem favorite = menu.findItem(MENU_FAVORITE);
    if (favorite != null) {
        final Drawable icon = favorite.getIcon().mutate();
        if (status.is_favorite) {
            icon.setColorFilter(activated_color, Mode.MULTIPLY);
            favorite.setTitle(R.string.unfavorite);
        } else {
            icon.clearColorFilter();
            favorite.setTitle(R.string.favorite);
        }
    }
    final MenuItem extensions = menu.findItem(MENU_EXTENSIONS_SUBMENU);
    if (extensions != null) {
        final Intent intent = new Intent(INTENT_ACTION_EXTENSION_OPEN_STATUS);
        final Bundle extras = new Bundle();
        extras.putParcelable(INTENT_KEY_STATUS, status);
        intent.putExtras(extras);
        final PackageManager pm = context.getPackageManager();
        final List<ResolveInfo> activities = pm.queryIntentActivities(intent, 0);
        final boolean has_extension = !activities.isEmpty();
        extensions.setVisible(has_extension);
        if (has_extension) {
            addIntentToSubMenu(context, extensions.getSubMenu(), intent);
        }
    }
}

From source file:com.dwdesign.tweetings.util.Utils.java

public static void setMenuForStatus(final Context context, final Menu menu, final ParcelableStatus status) {
    if (context == null || menu == null || status == null)
        return;// w  w  w  .  j a v  a  2s.  co  m
    final int activated_color = context.getResources().getColor(R.color.holo_blue_bright);
    final MenuItem itemDelete = menu.findItem(R.id.delete_submenu);
    if (itemDelete != null) {
        itemDelete.setVisible(status.account_id == status.user_id && !isMyRetweet(status));
    }
    final MenuItem itemRetweet = menu.findItem(MENU_RETWEET);
    if (itemRetweet != null) {
        final Drawable icon = itemRetweet.getIcon().mutate();
        itemRetweet.setVisible(
                (!status.is_protected && status.account_id != status.user_id) || isMyRetweet(status));
        if (isMyRetweet(status)) {
            icon.setColorFilter(activated_color, Mode.MULTIPLY);
            itemRetweet.setTitle(R.string.cancel_retweet);
        } else {
            icon.clearColorFilter();
            itemRetweet.setTitle(R.string.retweet);
        }
    }
    final MenuItem itemFav = menu.findItem(MENU_FAV);
    if (itemFav != null) {
        final Drawable iconFav = itemFav.getIcon().mutate();
        if (status.is_favorite) {
            iconFav.setColorFilter(activated_color, Mode.MULTIPLY);
            itemFav.setTitle(R.string.unfav);
        } else {
            iconFav.clearColorFilter();
            itemFav.setTitle(R.string.fav);
        }
    }
    final MenuItem itemConversation = menu.findItem(MENU_CONVERSATION);
    if (itemConversation != null) {
        itemConversation.setVisible(status.in_reply_to_status_id > 0);
    }
}

From source file:de.vanita5.twittnuker.util.Utils.java

public static void setMenuForStatus(final Context context, final Menu menu, final ParcelableStatus status) {
    if (context == null || menu == null || status == null)
        return;/* ww w .  j  ava 2 s. c o  m*/
    final int activatedColor = ThemeUtils.getUserThemeColor(context);
    final boolean isMyRetweet = isMyRetweet(status);
    final MenuItem delete = menu.findItem(MENU_DELETE);
    if (delete != null) {
        delete.setVisible(status.account_id == status.user_id && !isMyRetweet);
    }
    final MenuItem retweet = menu.findItem(MENU_RETWEET);
    if (retweet != null) {
        final Drawable icon = retweet.getIcon().mutate();
        retweet.setVisible(!status.user_is_protected || isMyRetweet);
        if (isMyRetweet) {
            icon.setColorFilter(activatedColor, Mode.SRC_ATOP);
            retweet.setTitle(R.string.cancel_retweet);
        } else {
            icon.clearColorFilter();
            retweet.setTitle(R.string.retweet);
        }
    }
    final MenuItem itemRetweetSubmenu = menu.findItem(R.id.retweet_submenu);
    if (itemRetweetSubmenu != null) {
        final Drawable icon = itemRetweetSubmenu.getIcon().mutate();
        if (isMyRetweet) {
            icon.setColorFilter(activatedColor, Mode.SRC_ATOP);
        } else {
            icon.clearColorFilter();
        }
    }
    final MenuItem favorite = menu.findItem(MENU_FAVORITE);
    if (favorite != null) {
        final Drawable icon = favorite.getIcon().mutate();
        if (status.is_favorite) {
            icon.setColorFilter(activatedColor, Mode.SRC_ATOP);
            favorite.setTitle(R.string.unfavorite);
        } else {
            icon.clearColorFilter();
            favorite.setTitle(R.string.favorite);
        }
    }
    final MenuItem love = menu.findItem(MENU_LOVE);
    if (love != null) {
        final Drawable icon = love.getIcon().mutate();
        love.setVisible(!status.user_is_protected || isMyRetweet);
        if (isMyRetweet && status.is_favorite) {
            icon.setColorFilter(activatedColor, Mode.SRC_ATOP);
        } else {
            icon.clearColorFilter();
        }
    }
    final MenuItem translate = menu.findItem(MENU_TRANSLATE);
    if (translate != null) {
        final AccountWithCredentials account = Account.getAccountWithCredentials(context, status.account_id);
        final boolean isOfficialKey = AccountWithCredentials.isOfficialCredentials(context, account);
        setMenuItemAvailability(menu, MENU_TRANSLATE, isOfficialKey);
    }
    final MenuItem shareItem = menu.findItem(R.id.share_submenu);
    final Menu shareSubmenu = shareItem != null && shareItem.hasSubMenu() ? shareItem.getSubMenu() : null;
    if (shareSubmenu != null) {
        final Intent shareIntent = createStatusShareIntent(context, status);
        shareSubmenu.removeGroup(MENU_GROUP_STATUS_SHARE);
        addIntentToMenu(context, shareSubmenu, shareIntent, MENU_GROUP_STATUS_SHARE);
    }
}

From source file:org.getlantern.firetweet.util.Utils.java

public static void addIntentToMenuForExtension(final Context context, final Menu menu, final int groupId,
        final String action, final String parelableKey, final String parelableJSONKey,
        final FiretweetParcelable parcelable) {
    if (context == null || menu == null || action == null || parelableKey == null || parcelable == null)
        return;/*from w  w w . j a  v  a  2 s  .  c o  m*/
    final PackageManager pm = context.getPackageManager();
    final Resources res = context.getResources();
    final float density = res.getDisplayMetrics().density;
    final int padding = Math.round(density * 4);
    final Intent queryIntent = new Intent(action);
    queryIntent.setExtrasClassLoader(context.getClassLoader());
    final List<ResolveInfo> activities = pm.queryIntentActivities(queryIntent, PackageManager.GET_META_DATA);
    for (final ResolveInfo info : activities) {
        final Intent intent = new Intent(queryIntent);
        if (isExtensionUseJSON(info)) {
            intent.putExtra(parelableJSONKey, JSONSerializer.toJSONObjectString(parcelable));
        } else {
            intent.putExtra(parelableKey, parcelable);
        }
        intent.setClassName(info.activityInfo.packageName, info.activityInfo.name);
        final MenuItem item = menu.add(groupId, Menu.NONE, Menu.NONE, info.loadLabel(pm));
        item.setIntent(intent);
        final Drawable metaDataDrawable = getMetadataDrawable(pm, info.activityInfo,
                METADATA_KEY_EXTENSION_ICON);
        final int actionIconColor = ThemeUtils.getThemeForegroundColor(context);
        if (metaDataDrawable != null) {
            metaDataDrawable.mutate();
            metaDataDrawable.setColorFilter(actionIconColor, Mode.SRC_ATOP);
            item.setIcon(metaDataDrawable);
        } else {
            final Drawable icon = info.loadIcon(pm);
            final int iw = icon.getIntrinsicWidth(), ih = icon.getIntrinsicHeight();
            if (iw > 0 && ih > 0) {
                final Drawable iconWithPadding = new PaddingDrawable(icon, padding);
                iconWithPadding.setBounds(0, 0, iw, ih);
                item.setIcon(iconWithPadding);
            } else {
                item.setIcon(icon);
            }
        }

    }
}