色调菜单图标的性能改进

时间:2016-06-28 12:02:28

标签: android performance user-interface android-vectordrawable

我想为我的菜单图标着色,使用一种颜色显示可见的图标,使用不同颜色的溢出菜单中的那些图标。 所以我写了以下代码:

    final MenuBuilder builder = getMenuBuilder(menu);
    if (builder != null) {
        builder.flagActionItems();
        final ArrayList<MenuItemImpl> items = builder.getVisibleItems();
        for (int i = 0, size = items.size(); i < size; ++i) {
            final MenuItemImpl item = items.get(i);
            final Drawable icon = item.getIcon();
            if (icon != null) {
                final Drawable mutate = icon.mutate();
                if (item.isActionButton()) {
                    mutate.setColorFilter(actionItemColor, PorterDuff.Mode.SRC_ATOP);
                } else {
                    mutate.setColorFilter(color, PorterDuff.Mode.SRC_ATOP);
                }
                item.setIcon(mutate);
            }
        }
    }

这段代码完美无缺,但我对性能不满意,特别是因为我开始使用矢量绘图。 这是三个矢量图标的测量,你的图标是直接可见的。但是对flagActionItems()的调用大约需要160ms ......这似乎有点多了。

enter image description here

有没有人知道如何提高性能。该代码需要在Android 4.2及更高版本上运行。

0 个答案:

没有答案