首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MenuItem。ColorFilter。圆形背景

MenuItem。ColorFilter。圆形背景
EN

Stack Overflow用户
提问于 2018-02-28 09:38:03
回答 1查看 719关注 0票数 1

对于MenuItem,我使用矢量绘图。

代码语言:javascript
复制
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    this.menu = menu;
    menu.add(Menu.NONE, 1, Menu.NONE, "Pen")
            .setIcon(R.drawable.ic_pen)
            .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
    return true;
}

我有可变的“颜色”。对于安卓版本的>= Lollipop,我使用setTin(颜色)

代码语言:javascript
复制
menuItem.getIcon().setTint(color);

对于Android,我想使用<= (setColorFilter,PorterDuff.Mode.SCREEN)。原来是这样的背景(正方形)

代码语言:javascript
复制
menuItem.setColorFilter(color, PorterDuff.Mode.SCREEN);

如何使背景四舍五入?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-28 11:06:57

您可以使用DrawableResource创建图层表。为了使背景四舍五入创建新的DrawableResource,让我们将其命名为ic_pen_rounded,并将下一段代码放入该文件中:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="oval">
            <solid android:color="#8df"/>
            <size
                android:width="100dp"
                android:height="100dp" />
        </shape>
    </item>
    <item android:drawable="@drawable/ic_pen" />
</layer-list>

那么在创建Drawable时只需使用这个MenuItem

代码语言:javascript
复制
menu.add(Menu.NONE, 1, Menu.NONE, "Pen")
        .setIcon(R.drawable.ic_pen_round)
        .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

还可以去掉设置VectorDrawable背景的行。

  • menuItem.getIcon().setTint(color);
  • menuItem.setColorFilter(color, PorterDuff.Mode.SCREEN);

您可以在下一行的ic_pen_rounded.xml中设置图标背景:

代码语言:javascript
复制
<solid android:color="#8df"/>

这是我的结果:

更新-如何在运行时更改图标背景色

  1. id添加到layer-list中的ShapeDrawable
  2. 获取menuItem图标: LayerDrawable layerDrawable = (LayerDrawable) menuItem.getIcon();
  3. 按id查找背景item并设置颜色: layerDrawable.findDrawableByLayerId(R.id.background);icon.setColor(Color.RED);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49026250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档