android中的戒指形状

时间:2013-06-20 14:29:47

标签: android android-xml android-drawable android-shape

我在drawable文件夹(xml)中有以下circle_status.xml来创建一个响铃:

<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="ring"
android:innerRadius="15dp"
android:thickness="10dp"
android:useLevel="false">

<solid android:color="#ababf2" />

</shape>

将drawable插入relativeLayout的背景中,如下所示:

<RelativeLayout
        android:id="@+id/RelativeLayout_Status"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:background="@drawable/circle_status" >
    </RelativeLayout>

问题是,在relativeLayout中出现一个圆而不是一个环。

4 个答案:

答案 0 :(得分:25)

请注意,戒指是没有填充的椭圆形。只是中风。持有它的观点应该是一个完美的广场。

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">

<stroke
    android:width="1dp"
    android:color="@color/blue" />
</shape>

持有它的观点

<ImageView
     android:layout_width="10dp"
     android:layout_height="10dp"
     android:src="@drawable/ring" />

答案 1 :(得分:22)

我自己回答。

似乎问题出现在Eclipse的Graphical Layout Editor中,代码在真实设备中运行良好。

答案 2 :(得分:8)

此hack在设备和Android Studio上显示响铃:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="ring" android:innerRadius="23dp" android:thickness="0dp">
    <stroke android:width="2dp" android:color="#ababf2" />
</shape>

答案 3 :(得分:5)

您必须在<stroke>标记中使用<solid>标记而不是<shape>标记进行响铃。 在<solid>代码中使用<shape>代码会产生一个圆圈而非圆环。

<solid>标记可用于环形背景颜色,<stroke>用于环体颜色。