以编程方式使用可绘制资源的形状

时间:2018-01-16 17:42:24

标签: java android android-drawable

目前我有一个内容很少的操作栏菜单。

我正在尝试使用具有可绘制

的形状的菜单项

到目前为止的代码:

ShapeDrawable circle = new ShapeDrawable(new OvalShape());
        circle.getPaint().setColor(Color.GREEN);
        circle.setIntrinsicHeight(120);
        circle.setIntrinsicWidth(120);

        circle.setBounds(0, 0, 120, 120);

        menu.findItem(R.id.menu_item_1).setIcon(circle);

然而目前看起来只是一个绿色的圆圈,我希望里面有一个可绘制的图标。

for example

1 个答案:

答案 0 :(得分:0)

只需在icon.xml文件夹中创建drawable

<?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="@color/colorPrimaryDark"/>

            <size
                android:width="70dp"
                android:height="70dp"/>
        </shape>
    </item>

    <item android:drawable="@android:drawable/ic_dialog_map"  android:gravity="center">
    </item>
</layer-list>

并像这样使用它:

 menu.findItem(R.id.menu_item_1).setIcon(ContextCompat.getDrawable(this, R.drawable.icon));

{{3}}