需要在纯色椭圆的中心放置图标。它还需要允许动态改变椭圆的颜色。
可以通过JérémieLaval在椭圆like的顶部/中心显示图标:
<?xml version="1.0" encoding="UTF-8" ?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
<solid android:color="#42000000" />
<padding android:left="8dp" android:top="8dp"
android:right="8dp" android:bottom="8dp" />
</shape>
<FrameLayout
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_gravity="center"
android:background="@drawable/aitemring">
<ImageView
android:src="@drawable/coffee"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="center" />
</FrameLayout>
如何在代码中更改椭圆形状的颜色的问题(kets说得到新颜色#ff0000,或任何非预定义的颜色)?
答案 0 :(得分:0)
您是否考虑过定义两个drawable并在需要更改颜色时交换它们?
您可以执行图层列表来创建形状并添加图标。
答案 1 :(得分:0)
根据大卫的提示,这有效:
<?xml version="1.0" encoding="UTF-8" ?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
<solid android:color="#42000000" />
</shape>
<ImageView
android:id="+id/theIcon"
android:src="@drawable/coffee"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="center"
android:background="@drawable/aitemring" />
GradientDrawable shapeDrawable = (GradientDrawable)theIcon.getBackground();
shapeDrawable.setColor(0xffff0000);