我想在一个颜色为2的圆圈内绘制一个颜色为1的圆圈。它们都有笔划,内部是透明的。这应该用作按钮的背景。
像这样的东西(但是绿色和红色是彼此相邻的 - 两者之间没有间隙。抱歉,我没有任何图形程序可以绘制它们,所以它们彼此相邻。)
有没有办法在XML中做到这一点?
我正在考虑使用形状XML来做这件事,但是图层会缩放,因此图层会相互叠加,因此只能看到1种颜色。
答案 0 :(得分:1)
尝试这样的事情:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<size android:height="10dp" android:width="10dp"/>
<stroke
android:width="2dp"
android:color="#FF0000"
/>
</shape>
</item>
<item>
<shape android:shape="oval">
<stroke
android:width="1dp"
android:color="#00FF00"
/>
</shape>
</item>
</layer-list>
您可以更改width
元素的height
和size
以获得不同的宽度。
答案 1 :(得分:1)
你可以通过定义两个可绘制的资源来实现这一点,这两个资源都用不同的笔触颜色圈出来,然后将它们放在一个图层列表可绘制的资源中,然后使用不同的集合来提供你需要的效果:
内圈 inner.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<stroke android:color="@color/colorRed"
android:width="2dp"/>
</shape>
外圈 outer.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<stroke android:color="@color/colorGreen"
android:width="2dp"/>
</shape>
按钮背景 background.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/outer"
android:right="0dp"
android:top="0dp"
android:bottom="0dp"
android:left="0dp"
android:gravity="center"/>
<item android:drawable="@drawable/inner"
android:right="4dp"
android:top="4dp"
android:bottom="4dp"
android:left="4dp"
android:gravity="center"/>
</layer-list>
这是最终结果
答案 2 :(得分:1)
你使用带有插图的图层列表,以避免内圈从外圈潜伏,如下所示:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<stroke
android:width="4dp"
android:color="@android:color/holo_red_dark" />
</shape>
</item>
<item>
<inset android:inset="4dp">
<shape android:shape="oval">
<stroke
android:width="4dp"
android:color="@android:color/holo_green_dark" />
</shape>
</inset>
</item>
</layer-list>
您可以像这样设置按钮的大小和背景:
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="@drawable/red_green" />
然后看起来像这样: