2013-04-19 10 views
52

Ich versuche, mit nur einer Grenze um einen Kreis zu erstellen mit Hilfe von XML in Android:Transparent Kreis mit Grenze

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

<stroke android:width="1dp" 
    android:color="#000000"/> 

</shape> 

Den Code, den ich verwendet habe, ist oben gepostet. Ich bekomme jedoch eine solide Festplatte und keinen Ring. Ich möchte die Ausgabe nur mit XML und nicht mit Canvas erstellen. Was mache ich falsch?

Danke.

EDIT: Bekam es zur Arbeit dank der Antwort unten. Heres meine letzte Code:

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

    <solid android:color="@android:color/transparent" /> 

    <size android:width="100dp" 
    android:height="100dp"/> 

    <stroke android:width="1dp" 
    android:color="#FFFFFF"/> 

</shape> 

Antwort

130

etwas Versuchen Sie, wie dieses

<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/transparent" /> 

    <stroke 
     android:width="2dp" 
     android:color="@android:color/darker_gray" /> 
</shape> 

Update: gemacht android:thicknessRatio="2" Kreis zu geben (mit Nexus 5 - Lollipop)

+0

Awesome !! du bist großartig. – swiftBoy

+7

Ich habe es 'android: thicknessRatio =" 2 "' zu einem geschlossenen Ring gemacht (Nexus 5, Lollipop) – David

+0

@David Kommentar sollte zur Antwort hinzugefügt werden. Wie auch immer, danke;) –

1

Sie android integrierte Wert für transparent verwenden können als @android:color/transparent oder verwenden Sie oder #00000000

für oben beginnend für 4-stellige war zuerst für alpha und in 8-stelliger Wert erste zwei Ziffer war für das gleiche wie Alpha.

Wenn Sie nur 3 Ziffern geben oder 6-stellige in der Farbe als Standardwert alpha ff Sie war in 4-stelliger oder 8-stelliger Wert, indem festgelegt, dass die Alpha-Version von diesem Farbwert

+1

Hallo Pratik, ich habe den Alpha-Teil Ihrer Antwort nicht verstanden. Ich habe die Zeile zur XML-Datei hinzugefügt. Aber immer noch das gleiche Ergebnis. – Anirudh

+0

Dieses Alpha wurde verwendet, um die Deckkraft der Farbe einzustellen. Wenn Sie die 4 0 oder 8 0 als vollständig transparent, mit der Erhöhung der ersten 2 Stelle in 8 0 Wert der nur erhöhen den Wert der Deckkraft – Pratik

17

Verwendung dies es wird funktionieren

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

<gradient 
    android:centerX=".6" 
    android:centerY=".40" 
    android:endColor="@android:color/transparent" 
    android:gradientRadius="20" 
    android:startColor="@android:color/transparent" 
    android:type="radial" /> 

<stroke 
    android:width="1dp" 
    android:color="#FFFFFF" /> 

<size 
    android:height="100dp" 
    android:width="100dp" /> 

</shape> 
4

Hohl

<?xml version="1.0" encoding="utf-8"?> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="oval"> 
     <stroke 
      android:width="1dp" 
      android:color="@color/indicator_unselected" /> 
    </shape> 

Voll

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="oval"> 
    <corners android:radius="100dp" /> 
    <solid android:color="@android:color/white" /> 
</shape> 
+0

Dies funktioniert wirklich und ist einfacher als andere Antworten, ich benutze es! Vielen Dank – Juancho

0

Wenn Sie Vektor verwenden können Drawables versuchen, diese

<vector android:height="24dp" android:viewportHeight="512.0" 
    android:viewportWidth="512.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> 
    <path android:fillColor="#FFFFFF" android:fillType="evenOdd" 
     android:pathData="M0,0L512,0L512,512L0,512L0,0ZM256,511C396.8,511 511,396.8 511,256C511,115.2 396.8,1 256,1C115.2,1 1,115.2 1,256C1,396.8 115.2,511 256,511Z" 
     android:strokeColor="#00000000" android:strokeWidth="1"/> 
</vector>