it-swarm.com.de

Wie definiere ich eine Kreisform in einer zeichnbaren Android-XML-Datei?

Ich habe Probleme, die Dokumentation der Definitionen von Formen in XML für Android zu finden. Ich möchte einen einfachen Kreis definieren, der in einer XML-Datei mit einer durchgehenden Farbe gefüllt ist, um ihn in meine Layoutdateien aufzunehmen. 

Leider deckt die Dokumentation auf Android.com nicht die XML-Attribute der Shape-Klassen ab. Ich denke, ich sollte eine ArcShape verwenden, um einen Kreis zu zeichnen, aber es gibt keine Erklärung, wie die Größe, die Farbe oder der Winkel eingestellt werden muss, um einen Kreis aus einem Bogen zu machen.

554
Janusz

Dies ist ein einfacher Kreis, der in Android gezeichnet werden kann.

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:shape="oval">

   <solid 
       Android:color="#666666"/>

   <size 
       Android:width="120dp"
        Android:height="120dp"/>
</shape>
1246
Arefin

Legen Sie dies als Ansichtshintergrund fest

<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:shape="oval">
    <stroke
        Android:width="1dp"
        Android:color="#78d9ff"/>
</shape>

 enter image description here

Für Vollkreis verwenden:

<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:shape="oval">
    <solid
        Android:color="#48b3ff"/>
</shape>

 enter image description here

Fest mit Schlaganfall:

<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:shape="oval">
    <solid Android:color="#199fff"/>
    <stroke
        Android:width="2dp"
        Android:color="#444444"/>
</shape>

 enter image description here

Note: Damit die oval-Form als Kreis angezeigt wird, sollte in diesen Beispielen entweder Ihre Ansicht, dass Sie diese Form als Hintergrund verwenden, ein Quadrat sein, oder Sie müssen die height- und width-Eigenschaften des Shape-Tags festlegen auf einen gleichen Wert.

663

Code für einfachen Kreis

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:shape="oval">
        <solid Android:color="#9F2200"/>
        <stroke Android:width="2dp" Android:color="#fff" />
        <size Android:width="80dp" Android:height="80dp"/>
</shape>
87
Ravi Makvana

Schauen Sie sich die Android SDK-Beispiele an. Im ApiDemos-Projekt gibt es mehrere Beispiele:

/ ApiDemos/res/drawable / 

  • black_box.xml
  • shape_5.xml 
  • usw

Bei Kreisen mit Verlaufsfüllung sieht es ungefähr so ​​aus:

 <? xml version = "1.0" coding = "utf-8"?> 
 <shape xmlns: Android = "http://schemas.Android.com/apk/res/Android" Android: shape = "oval"> 
 <gradient Android: startColor = "# FFFF0000" Android: endColor = "# 80FF00FF" 
 Android: angle = "270" />
</ Form> 

46
goosemanjack

Sie können VectorDrawable wie folgt verwenden:

<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:width="200dp"
    Android:height="200dp"
    Android:viewportHeight="64"
    Android:viewportWidth="64">

    <path
        Android:fillColor="#ff00ff"
        Android:pathData="M22,32
        A10,10 0 1,1 42,32
        A10,10 0 1,1 22,32 Z" />
</vector>

Die obige XML-Datei wird wie folgt dargestellt:

 enter image description here

42
Riyas PK
<?xml version="1.0" encoding="utf-8"?>
<shape 
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:shape="oval">

    <!-- fill color -->
    <solid Android:color="@color/white" />

    <!-- radius -->
    <stroke
        Android:width="1dp"
        Android:color="@color/white" />

    <!-- corners -->
    <corners
        Android:radius="2dp"/>
</shape>
20
Ashana.Jackol

Hier ist eine einfache circle_background.xml für Vormaterial:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item Android:state_pressed="true">
        <shape Android:shape="oval">
            <solid Android:color="@color/color_accent_dark" />
        </shape>
    </item>
    <item>
        <shape Android:shape="oval">
            <solid Android:color="@color/color_accent" />
        </shape>
    </item>
</selector>

Sie können das Attribut 'Android:background="@drawable/circle_background" in der Layoutdefinition Ihrer Schaltfläche verwenden

15
kip2

Wenn Sie einen Kreis wie diesen haben möchten

 enter image description here

Versuchen Sie es mit dem folgenden Code:

<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:innerRadius="0dp"
Android:shape="ring"
Android:thicknessRatio="2"
Android:useLevel="false" >
<solid Android:color="@Android:color/white" />
<stroke
    Android:width="1dp"
    Android:color="@Android:color/darker_gray" /></shape>
8
<?xml version="1.0" encoding="utf-8"?>
<shape 
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:shape="oval">

    <stroke
        Android:width="10dp"
        Android:color="@color/white"/>

    <gradient
        Android:startColor="@color/red"
        Android:centerColor="@color/red"
        Android:endColor="@color/red"
        Android:angle="270"/>

    <size 
        Android:width="250dp" 
        Android:height="250dp"/>
</shape>
6
TeeTracker

Sie können es versuchen -

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:shape="ring"
    Android:innerRadiusRatio="700"
    Android:thickness="100dp"
    Android:useLevel="false">

    <solid Android:color="#CCC" />

</shape>

Sie können den Radius des Kreises auch anpassen, indem Sie Android:thickness einstellen.

 enter image description here

2
Kumar Hitesh
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item>
        <shape Android:shape="oval">
            <solid Android:color="@color/text_color_green"/>
            <!-- Set the same value for both width and height to get a circular shape -->
            <size Android:width="250dp" Android:height="250dp"/>
        </shape>
    </item>
</selector>
0
varun setia

res/drawble/circle_shape.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item>

        <shape Android:shape="oval">
            <solid Android:color="#e42828"/>
            <stroke Android:color="#3b91d7" Android:width="5dp"/>
            <!-- Set the same value for both width and height to get a circular shape -->
            <size Android:width="250dp" Android:height="250dp"/>
        </shape>
    </item>
</selector>

enter image description here

beispiel online: https://code-Android-example.blogspot.com/2019/07/how-to-circle-shape-in-xml-drawable-Android.html

0
Tienanhvn

Ich konnte aus irgendeinem Grund keinen Kreis in meinem ConstraintLayout zeichnen, ich konnte einfach keine der obigen Antworten verwenden.

Was perfekt funktioniert hat, ist eine einfache Textansicht mit dem Text, der ausgegeben wird, wenn Sie "Alt + 7" drücken:

 <TextView
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:textColor="#0075bc"
            Android:textSize="40dp"
            Android:text="•"></TextView>
0