Android: PNG-Transparenz fehlgeschlagen mit BitmapFactory.decodeStream (...) und Assets-Ordner

9

Ich verwende die folgende Methode, um eine PNG-Datei aus dem Ordner "Assets" in meiner Android-Anwendung zu extrahieren:

%Vor%

Ich setze dann die Quelle eines ImageView im Element einer GridView auf diese Bitmap.

Hier ist das Layout XML in Frage:

%Vor%

Und der Stil, auf den in diesem XML Bezug genommen wird, ist:

%Vor%

Hier ist der Code, der die Quelle von ImageView festlegt:

%Vor%

Das PNG-Bild hat einige transparente Bereiche, aber aus irgendeinem Grund, wenn das Bild in meiner GridView angezeigt wird, erscheinen die transparenten Bereiche schwarz.

Um einige Fragen zu vermeiden: Nein, der Hintergrund der Elemente Activity, ImageView, GridView und GridView ist nicht schwarz. In der Tat, egal was die Hintergrundfarben eingestellt sind, die transparenten Teile des Bildes kommen immer als schwarz durch.

Bedenken Sie dies jedoch ... Wenn ich das PNG-Bild in den zeichnbaren Ordner platziere und das ImageView wie folgt einstelle, ist die Transparenz perfekt:

%Vor%

Ich bin mir ziemlich sicher, dass ich die Methode decodeStream (...) irgendwie falsch benutze, aber ich weiß nicht, was ich falsch mache. Ich habe sogar meine ursprüngliche Methode geändert, um einige Optionen wie hier gezeigt einzustellen:

%Vor%

Aber das gab mir das gleiche schlechte Ergebnis.

Irgendwelche Ideen, irgendjemand?

Danke.

    
mahdaeng 01.02.2012, 07:03
quelle

2 Antworten

0

Versuchen Sie stattdessen Folgendes:

%Vor%     
Dmitry Nelepov 04.06.2013 18:57
quelle
0

Wenn Ihr Bild aus einer Anwendungsressource besteht und es unter res / drawbar / statt eines der spezifischen Auflösungsordner (z. B. res / drawable-hdpi) abgelegt wird

Der Android-Compiler optimiert das PNG, so dass die transparenten Pixel weiß (oder schwarz bei GIFF-Dateien) gemacht werden

Lösung: Verschiebe deine PNG-Datei auf res / drawable-hdpi oder einen der anderen ziehbaren Ordner und du solltest OK sein.

    
Haggai 31.03.2015 12:56
quelle