2017-05-13 2 views
1

Ich brauche Hilfe Erstellen einer Arc Shape für Android-Layout. Ich brauche keinen Code dafür. Wenn es möglich ist, Formen zu verwenden, wird es großartig.Arc Drawable für Android Layout

Verwendungsbeispiel:

<LinearLayout android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@drawable/arc"> 
</LinearLayout> 

-Layout wie dies sollte wie: layout arc drawable

Antwort

2

Es ist nicht ganz klar, was die Anforderungen an die Form des Bogens sind, aber man könnte die oben mit einem VectorDrawable zu erreichen:

arc.xml (in res/Drawables /)

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

    <path 
     android:fillColor="#757491" 
     android:strokeWidth="1" 
     android:pathData="M44,3 L0,228 C0,228 68,239 114,236 C151,236 223,221 223,221 L197,0 
C197,5.68434189e-14 158,11.7434499 120,11 C82,10.2565501 44,3 44,3 Z" /> 
</vector> 

Dann, wie Sie oben haben:

<LinearLayout android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@drawable/arc"> 
</LinearLayout> 

Beachten Sie, dass es Plattform Einschränkungen sind, wenn VectorDrawables (API 21+), oder Sie können die Support-Bibliothek verwenden, um die Funktionalität zu zurückzuportieren wenn Sie früher API-Ebenen unterstützen müssen.

Wie habe ich den obigen Code gemacht? Ich zeichnete die Form in einem Vektorpaket (Sketch/Illustrator/etc) auf und exportierte sie als svg Datei. Ich benutzte dann das sehr handliche Werkzeug bei , um es in VectorDrawable-Code zu konvertieren.

Wenn Sie etwas dynamischere dann würde ich persönlich erstellen Sie einfach eine benutzerdefinierte Drawable in Java und mit Path auf Canvas ziehen, aber sie zeigen Sie dies nicht tun wollen.