web-dev-qa-db-ja.com

androidのリング形状

次の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>

次に、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にリングではなく円が表示されることです。

32
suanido

私は自分自身に答えます。

問題はEclipseのGraphical Layout Editorにあり、実際のデバイスではコードが正常に機能しているようです。

22
suanido

リングは塗りつぶしのない楕円形であることに注意してください。ただストロークで。そして、それを保持するビューは、完全な正方形でなければなりません。

<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" />
26
Reinherd

このハックは、両方のデバイスと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>
9
snodnipper

<stroke>タグのリングには、<solid>タグの代わりに<shape>タグを使用する必要があります。 <solid>タグで<shape>タグを使用すると、リングではなく円になります。

<solid>タグはリングの背景色に使用でき、<stroke>タグはリングの本体色に使用できます。

5
Bahman