2016-07-30 10 views
0

Ich versuche, einen kleinen dunklen Kreis in einem großen Lichtkreis mit Xml in Android zu machen. Beide Kreise haben eine Farbe, eine Größe und einen Strich. Warum füllt der kleine dunkle Kreis die 50 dp anstatt 28 dp?Warum füllt der innere Kreis den äußeren Kreis?

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!--big light circle--> 
    <item> 
     <shape android:shape="oval"> 
      <solid android:color="#EEEEEE" /> 

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

      <stroke 
       android:width="2dp" 
       android:color="#404040" /> 
     </shape> 
    </item> 
    <!--small dark circle--> 
    <item> 
     <shape android:shape="oval"> 
      <solid android:color="#AEAEAE" /> 

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

      <stroke 
       android:width="1dp" 
       android:color="#464646" /> 
     </shape> 
    </item> 
</layer-list> 

Die Verwendung des ziehbar:

<RadioButton 
     android:id="@+id/radioButtonPositive" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@android:color/transparent" 
     android:button="@android:color/transparent" 
     android:drawableTop="@drawable/ic_choice_background" 
     android:gravity="center" 
     android:onClick="onRadioButtonClicked" 
     android:layout_marginRight="110dp"/> 

Die xml erzeugt Wrong xml Aber ich will es enter image description here erzeugen (die äußeren Kreise sind gleich groß, Screenshot es nicht richtig dargestellt wird)

+0

auf welcher Version von Android testen Sie es? – Blackbelt

+0

Der Screenshot zeigt, was auf der Registerkarte Design der XML-Datei in Android Studio angezeigt wird. Es rendert API 23. Ich habe versucht, es auf einem 4.3, 5.0 und 6.0 Gerät laufen zu lassen und alles zeigt dasselbe. – Janneman96

+1

merkwürdig .. versuchen, Padding auf dem Blackbelt

Antwort

1

Wechsel auf unter

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<!--big light circle--> 
<item> 
    <shape android:shape="oval"> 
     <solid android:color="#EEEEEE" /> 

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

     <stroke 
      android:width="2dp" 
      android:color="#404040" /> 
    </shape> 
</item> 
<!--small dark circle--> 
<item android:bottom="11dp" 
    android:left="11dp" 
    android:right="11dp" 
    android:top="11dp"> 
    <shape android:shape="oval"> 
     <solid android:color="#AEAEAE" /> 

     <stroke 
      android:width="1dp" 
      android:color="#464646" /> 
    </shape> 
</item> 

+0

Dies funktionierte für mich! Es sollte nicht 22dp sein, wie Sie es auf beiden Seiten tun, ist es 11dp. Ich schlage vor, Sie fügen das Tag hinzu. – Janneman96

+0

Können Sie erklären, warum das -Tag nicht so funktioniert hat, wie ich es erwartet hatte? – Janneman96

+0

Nicht sicher, warum. Ich hatte das gleiche Problem und nur die obige Lösung funktionierte. –