Frage

Ich versuche, ein abgerundetes Rechteck mit einer Grenze zu ziehen um ihn herum eine Klasse verwenden, die ShapeDrawable erstreckt (siehe hier ) und alles funktioniert, außer dass die shapedrawable das Abschneiden zu sein scheint ein Teil der Grenze, weil die Form selbst erstreckt sich nicht außerhalb dieser Grenzen.

Gibt es nicht irgendeine Art und Weise zu kompensieren, wo die shapedrawable beginnt Zeichnung so, dass es eine Polsterung zwischen den Grenzen der Form selbst ist und die Leinwand? Ich habe beide ShapeDrawable.setBounds versucht, größer ist als die intrinsische Größe der Form und ShapeDrawable.setPadding aber scheinen nicht immer überall zu sein. Soll ich Subklassen Drawable stattdessen werden?

War es hilfreich?

Lösung

Sie können Sie wickeln Form ziehbar mit Einsatz (inset_shape.xml):

    <inset xmlns:android="http://schemas.android.com/apk/res/android"
     android:drawable="@drawable/your_shape_drawable" android:insetBottom="10dip"
     android:insetLeft="10dip" android:insetRight="10dip" android:insetTop="10dip"
     android:visible="true" />

Dann nutzen Sie einfach die inset_shape , wie Sie benötigen.

Andere Tipps

Versuchen Sie dies in Ihrem ziehbar ...!

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

    <solid android:color="#e1e1e1" />

    <stroke
        android:width="2dp"
        android:color="#808080" />

    <corners android:radius="10dp" />

    <padding
        android:bottom="5dp"
        android:left="5dp"
        android:right="5dp"
        android:top="5dp" />

</shape>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top