2016-06-06 20 views
0

Ich muss Widget implementieren, die einen Hintergrund wie auf dem Bild gezeigt hat - Kreis, wenn eine Ziffer, abgerundet Rect, wenn zwei Ziffern. Es sollte eine Fähigkeit haben, sich dynamisch zu verändern. Wie kann ich das erreichen?Android Kreis und abgerundeten Hintergrund

enter image description here

+0

so schreiben Sie Ihre benutzerdefinierte 'View' – pskink

+0

@Anton Kizema: Ich denke, Sie müssen nur Hintergrund dieser Ansicht als' zeichnende' mit 'Form' Attribut als' Ring' definieren. – AndiGeeky

+0

müssen Sie einen benutzerdefinierten Stil erstellen –

Antwort

0

Für das Rechteck mit abgerundeten Ecken Diese XML in Ihre ziehbar Ordner hinzufügen und es als Hintergrund für die Sie

<shape 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" > 
<solid 

    android:color="your own color" /> 

<corners android:bottomLeftRadius="7dp" 
    android:bottomRightRadius="7dp" 
    android:topLeftRadius="7dp" 
    android:topRightRadius="7dp" /> 
</shape> 

hinzufügen Für den Kreis wollen Ansicht verwenden diese xml in ziehbar Ordner

<shape 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="oval" > 
<solid 
    android:color="your own color" 

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

ändern sich die Höhe, Breite, Eckenradius Größen zu Ihrem

1

mögen Hintergrund wie in Frage oben zu erstellen, müssen Sie benutzerdefinierte Form erstellen und als Hintergrund der TextView gelten.

ring.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/selectable_kachel_shape"> 
     <shape 
      android:innerRadius="0dp" 
      android:shape="ring" 
      android:thicknessRatio="2" 
      android:useLevel="false"> 
      <!--<solid android:color="#ff00ffff"/>--> 
      <gradient 
       android:centerColor="#FFFFFF" 
       android:endColor="#FFFFFF" 
       android:startColor="#FFFFFF" 
       android:type="sweep"/> 
     </shape> 
    </item> 
    <item> 
     <shape xmlns:android="http://schemas.android.com/apk/res/android" 
       android:innerRadius="0dp" 
       android:shape="ring" 
       android:thicknessRatio="2.2" 
       android:useLevel="false"> 

      <solid android:color="#ff0000"/> 
      <padding 
       android:bottom="5dp" 
       android:left="5dp" 
       android:right="5dp" 
       android:top="5dp"/> 

     </shape> 
    </item> 
</layer-list> 

Bitte verwenden Sie diesen ring.xml als Hintergrund von TextView wie folgt:

<TextView 
      android:id="@+id/txt_pending_count" 
      android:layout_width="22dp" 
      android:layout_height="22dp" 
      android:layout_alignParentRight="true" 
      android:background="@drawable/ring" 
      android:gravity="center" 
      android:text="0" 
      android:textColor="#FFF" 
      android:textSize="10sp" 
      android:textStyle="bold"/> 

Dank.