Quadratische layout-border mit Runden Innenkanten

Ich versuche ein layout erstellen Grenze mit Ecken, die quadratisch sind auf der Außenseite und die Runde auf der Innenseite. Ich gesammelt habe, die ich brauche, zu erstellen .xml-drawable-definition setzt sich aus zwei Formen: eine mit einem Strich Breite und Eckradius und die anderen mit einer Strichbreite nur:

Die drawables

round_border.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke android:width="4dp" android:color="#FF000000" />
    <padding android:left="7dp" android:top="7dp"
            android:right="7dp" android:bottom="7dp" />
    <corners android:radius="4dp" />
    <solid android:color="#FFC0C0C0" />
</shape> 

square_border.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke android:width="2dp" android:color="#FF000000" />
    <solid android:color="#FFC0C0C0" />
</shape> 

Jede dieser arbeiten eigenständig als eine Grenze, wenn appliedby sich etwa so:

android:background="@drawable/round_border" 

aber, wenn Sie entweder von einem oder beiden Hinzugefügt werden, um eine item-Liste drawable etwa so:

composite_border.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <layer-list>
        <item android:drawable="@drawable/round_border"/>
        <!-- <item android:drawable="@drawable/square_border"/> -->
    </layer-list>
</shape> 

und:

android:background="@drawable/composite_border"

Den layout-hintergrund ist komplett schwarz, statt nur ein schwarzen Rand.

Weiß jemand, wie man die layer-Liste arbeiten für diese Aufgabe?

  • vielen Dank für das teilen dieses!
InformationsquelleAutor jchristof | 2011-06-28
Schreibe einen Kommentar