46 Stimmen

Ein leeres Drawable in Android erstellen

Ein Drawable zu erstellen, das komplett leer ist, scheint ein häufiges Bedürfnis zu sein, als Platzhalter, Anfangszustand usw., aber es scheint keinen guten Weg zu geben, dies zu tun... zumindest in XML. Mehrere Stellen verweisen auf die Systemressource @android:drawable/empty aber soweit ich das beurteilen kann (d.h. es steht nicht in den Referenzdokumenten, und aapt sagt, dass es die Ressource nicht finden kann), gibt es das nicht.

Gibt es eine generelle Möglichkeit, ein leeres Drawable zu referenzieren, oder muss man am Ende für jedes Projekt ein falsches leeres PNG erstellen?

101voto

Emil Punkte 1414

Bei mir hat es nicht funktioniert, als ich versucht habe, die @android:id/empty bei der Erstellung einer leeren Ziehscheibe. Für mich, @android:color/transparent war derjenige.

14voto

JulianSymes Punkte 2105

Ich verwende eine leere ShapeDrawable d.h. ich erstelle meine eigene drawable/empty.xml, die nur <shape/>

11voto

Hans Punkte 1836
<shape />

erzeugt eine leere Form und ist für mich die Lösung. Oder erstellen Sie eine Datei empty_drawable.xml enthält:

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

damit Sie sie anderweitig verwenden können.

Sie können eine Form auch verschwinden lassen, wenn die Ansicht, in der sie verwendet wird, nicht aktiviert ist, indem Sie die Datei my_disablable_view.xml erstellen:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="true">
        <shape android:shape="oval">
            <size android:height="10dp" android:width="10dp" />
            <solid android:color="@android:color/white" />
        </shape>
    </item>
    <item android:state_enabled="false">
        <shape />
    </item>
</selector>

6voto

Andrey Timofeev Punkte 106

Utilice @android:color/transparent und vergessen Sie nicht hinzuzufügen android:constantSize="true" en <selector>

5voto

wirbly Punkte 2163

Bei mir führte die Verwendung von @Android:drawable/empty zu einem Fehler und verhinderte die Kompilierung. Mit @Android:id/empty wurde der Fehler behoben und ich konnte kompilieren, aber im Eclipse-Layout-Editor wurde "NullPointerException: null" angezeigt. Ich änderte es in @Android:color/transparent und jetzt ist alles in Ordnung.

Ich kann noch nicht abstimmen, sonst hätte ich Emils Antwort hochgestuft.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X