我正在尝试为我的应用程序做一个搜索栏的拇指,我想有一个不同的,更大(半透明)的外圈包围的内圈。我正在尝试使用layer-list,但我遇到了一些问题。下面是我的代码..。
<?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="#00f" />
<size
android:height="15dp"
android:width="15dp" />
</shape>
</item>
<item>
<shape
android:shape="oval" >
<solid android:color="#f00" />
<size
android:height="10dp"
android:width="10dp" />
</shape>
</item>
</layer-list>我希望在一个较大的蓝色圆圈上看到一个小红圈,但我看到的只是一个小红圈。有谁有什么想法吗?
发布于 2014-12-19 23:56:53
我工作的唯一方法是为内部(即顶部)圆定义一个透明的笔划,这是较大和较小圆的大小之间的差异。
例如,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Larger blue circle in back -->
<item>
<shape android:shape="oval">
<solid android:color="#00f"/>
<size
android:width="15dp"
android:height="15dp"/>
</shape>
</item>
<!-- Smaller red circle in front -->
<item>
<shape android:shape="oval">
<!-- transparent stroke = larger_circle_size - smaller_circle_size -->
<stroke android:color="@android:color/transparent"
android:width="5dp"/>
<solid android:color="#f00"/>
<size
android:width="10dp"
android:height="10dp"/>
</shape>
</item>
</layer-list>类似这样的...looks:

发布于 2015-07-26 19:35:48
虽然有点晚了,但可能会有帮助,你可以用填充来表示圆心。
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape
android:shape="oval">
<solid
android:color="#00fff"/>
<padding
android:bottom="30dp"
android:left="30dp"
android:right="30dp"
android:top="30dp"/>
<stroke
android:width="1dp"
android:color="@color/holo_red_light"/>
</shape>
</item>
<item>
<shape
android:shape="oval">
<solid
android:color="#00666666"/>
<size
android:width="120dp"
android:height="120dp"/>
<stroke
android:width="1dp"
android:color="@color/holo_red_light"/>
</shape>
</item>
</layer-list>发布于 2019-09-10 18:24:28
如果您需要绘制3或更多的圆,请遵循以下模式:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Larger blue circle -->
<item>
<shape android:shape="oval">
<padding
android:bottom="20dp"
android:left="20dp"
android:right="20dp"
android:top="20dp" />
<size
android:width="100dp"
android:height="100dp" />
<stroke
android:width="20dp"
android:color="#0000ff" />
</shape>
</item>
<!-- Green circle in middle -->
<item>
<shape android:shape="oval">
<padding
android:bottom="20dp"
android:left="20dp"
android:right="20dp"
android:top="20dp" />
<size
android:width="100dp"
android:height="100dp" />
<stroke
android:width="20dp"
android:color="#00ff00" />
</shape>
</item>
<!-- Smaller red circle at front -->
<item>
<shape android:shape="oval">
<size
android:width="100dp"
android:height="100dp" />
<solid android:color="#ff0000" />
</shape>
</item>
</layer-list>结果是:

注意,与这里的其他答案不同,此解决方案不会在其他圆的顶部绘制圆,这是避免透支的原因。
https://stackoverflow.com/questions/21613308
复制相似问题