webentwicklung-frage-antwort-db.com.de

Wie kann man eine Ringform erstellen, die in Android gezeichnet werden kann?

mit diesem Code bekomme ich nur eine Grenze:

<shape
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:shape="ring"
    Android:innerRadius="15dp"
    Android:thickness="2dp"
    Android:useLevel="false">
    <solid Android:color="#4d4d4d" />

</shape> 

wie kann ich eine Ringform wie in der folgenden Abbildung machen:

enter image description here

22
S.M_Emamian

2dp Außenring mit 2dp Lücke:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item
        Android:top="4dp"
        Android:right="4dp"
        Android:bottom="4dp"
        Android:left="4dp">
        <shape
            Android:shape="oval">
            <solid Android:color="#4d4d4d" />
        </shape>
    </item>
    <item>
        <shape
            Android:shape="oval">
            <stroke Android:width="2dp"
                Android:color="#4d4d4d"/>
        </shape>
    </item>
</layer-list>
39
tachyonflux

Sie müssen eine Zeichenfläche erstellen und als Hintergrund festlegen.

shape_primary_ring.xml

<shape
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:innerRadiusRatio="2.5"
    Android:shape="ring"
    Android:thickness="4dp"
    Android:useLevel="false">

    <solid Android:color="@color/colorPrimary"/>

</shape>

Vorschau

Ring Drawable Preview

6
Morgan Koh

Ring-Drawable ist die Gegenüberstellung von Elementen, verwenden Sie die Layer-Liste

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
  <item Android:right="6dip" Android:left="6dip">
    <shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
           Android:innerRadius="0dp"
           Android:shape="ring"
           Android:thicknessRatio="3"
           Android:useLevel="false" >
      <solid Android:color="@Android:color/transparent" />
      <stroke
          Android:width="5dp"
          Android:color="@color/maroon" />
    </shape>
  </item>
  <item Android:right="20dip"
        Android:left="20dip"
        Android:bottom="0dip"
        Android:top="34dip">
    <shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
           Android:shape="rectangle"
           Android:innerRadius="0dp">
      <solid Android:color="@color/maroon" />
      <stroke Android:width="1dip" Android:color="@Android:color/transparent" />
    </shape>
  </item>
  <item Android:right="20dip"
        Android:left="20dip"
        Android:bottom="34dip"
        Android:top="0dip">
    <shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
           Android:shape="rectangle"
           Android:innerRadius="0dp">
      <solid Android:color="@color/maroon" />
      <stroke Android:width="1dip" Android:color="@Android:color/transparent" />
    </shape>
  </item>
</layer-list>

enter image description here

Xml ist auf jeden Fall nützlicher als statische Bilder. Sie können korrekt skaliert werden, ohne dass eine .9-Bibliothek oder ein Satz mit unterschiedlichen Größen von Gimp, Photoshop benötigt wird

3
Sigrlami

<item>
    <shape
        Android:innerRadiusRatio="4"
        Android:shape="ring"
        Android:thicknessRatio="15"
        Android:useLevel="false" >
        <solid Android:color="@color/white_color" />
        <size
            Android:height="48dip"
            Android:width="48dip" />
    </shape>

</item>
<item>
    <shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:shape="ring"
        Android:innerRadius="0dp"
        Android:thickness="55dp"
        Android:useLevel="false">
        <solid Android:color="@color/white_color"/>
        <size Android:height="200dp"
            Android:width="200dp"/>
        <stroke Android:color="@color/green_color" Android:width="5dp"/>
    </shape>
</item>

1
Sidhu Gaikwad

Ich denke, eine Form in Android zu verwenden ist besser als eine Form in Photoshop.

Wenn Sie ein Zeichen erstellen, ist es besser, da Sie Farbe oder Form mit Code ändern können, anstatt eine neue Bildressource zu erstellen, z. B. . Erstellen Sie eine FrameLayout mit 2 Views und einer TextView. Der erste Ansichtshintergrund wäre Ihr äußerer Ring (Form) und der zweite ein gefeilter Kreis (Form). Zum Schluss die letzte View (größerer Z-Index) Ihre TextView:

<FrameLayout>
   <View/><!-- (outer ring)-->
   <View/><!-- (filed circle)-->
   <TextView/><!-- (text)-->
</FrameLayout>
1
GuilhE
<?xml version="1.0" encoding="utf-8"
    <selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
        <item>
            <shape Android:innerRadius="10dp" Android:shape="ring" Android:thickness="2dp" Android:useLevel="false">
                <solid Android:color="#dfdfdf" />
            </shape>
        </item>
     </selector>
0
ashish