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?

5voto

laalto Punkte 143902

@null in XML hat die gleiche Wirkung wie die Verwendung einer null als Drawable in Java.

2voto

Kai, ich weiß nicht, warum das der Fall ist, aber ich habe das gleiche Problem. Ich denke, es könnte mit der Android-Version zusammenhängen, für die Sie kompilieren? Auf jeden Fall habe ich herausgefunden, dass die Verwendung von @Android:id/empty an der Stelle, an der @Android:drawable/empty verwendet wird, das Problem löst.

2voto

Benny Punkte 1820

So erstellen Sie eine leere Drawable Bild, können Sie verwenden ShapeDrawable mit transparenter Farbe:

val shapeDrawable = ShapeDrawable(OvalShape())
shapeDrawable.paint.color = context.getColor(android.R.color.transparent)

Wenn die Bildgröße wichtig ist, verwenden Sie:

shapeDrawable.intrinsicWidth = 100
shapeDrawable.intrinsicHeight = 100

2voto

Heiko Zelt Punkte 11

Ich hatte das gleiche Problem. Meine App stürzte mit einem leeren Vektorbild ab. Ich habe es gelöst, indem ich ein transparentes/unsichtbares Pfadelement hinzugefügt habe. Ich habe es mit API 22 und 30 getestet.

ic_empty.xml:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
   android:width="24dp"
   android:height="24dp"
   android:viewportWidth="24"
   android:viewportHeight="24">
       <path android:strokeAlpha="0" android:pathData="M0,12h24"/>
</vector>

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