Benutzerdefinierte Ansicht mit Layer-List-Hintergrund zeichnbar rendert schwarzen Bildschirm

8

Ich versuche, eine benutzerdefinierte Android-Ansicht zu erstellen und einen Hintergrund, der eine Ebenenliste ist, anzuwenden.

Die Ebenenliste hat zwei Elemente:

  1. Eine Hintergrundfarbe (weiß)
  2. Eine einfache Form, die gezeichnet werden kann, dh ein gerundetes Rechteck mit abgerundeten Ecken

Hier ist das Zeichen-XML:

%Vor%

Die benutzerdefinierte Ansicht ist eine Klasse, die von Android.view.View stammt und derzeit KEINE Funktionalität außer den erforderlichen Messüberladungen hat.

Ich verwende den Hintergrund in der Ansichtsdefinition in einem Aktivitätslayout:

%Vor%

Was ich erwarten kann , ist eine Ansicht mit einem weißen Hintergrund und einem grünen Rand. Was ich tatsächlich sehe , wenn ich das Projekt deploye, ist eine Ansicht mit einem schwarzen Hintergrund und einem grünen Rand.

Interessanterweise wird es in der Designer-Vorschau in Android Studio korrekt angezeigt. Nur wenn ich es auf einem Gerät bereitstelle, wird es schwarz gerendert.

Vermisse ich hier etwas Offensichtliches?

    
pdriegen 01.11.2013, 20:13
quelle

1 Antwort

17

Für die Interessenten habe ich die Lösung gefunden.

Ich hatte die Form so definiert, dass sie nur eine Strichdefinition enthält. Ohne weitere Eingaben führt dies dazu, dass die Füllfarbe als schwarz erkannt wird.

Am Ende wird eine Layer-List-Drawable überhaupt nicht benötigt. Stattdessen fügen Sie der Form-Ebene eine solid fill-Definition mit der Farbe Transparent hinzu und das funktioniert problemlos.

%Vor%     
pdriegen 04.11.2013, 17:04
quelle