Die LG G-Uhr zeigt keine 32-Bit-Bilder oder Farbverläufe mit voller Farbtiefe an

8

Ich habe gekämpft, um Steigungen glatt auf meiner LG G Watch mit Android 5.0.1 erscheinen zu lassen.

Bevor Sie als Duplikat markieren, habe ich jede Antwort für mehrere Beiträge versucht (wie Warum Androiden verlieren Bildqualität bei der Anzeige einer PNG-Datei? , Ist es möglich, einen Farbverlauf zu zeichnen? , android: dither=" true "zittert nicht, was ist los? , Color Android-Lösung mit Banding , Color banding und Artefakte mit Farbverläufen trotz der Verwendung von RGBA_8888 überall , Farbband nur auf Android 4.0+ , Schrecklicher Hintergrund Bildqualität in Android ), aber keine scheint zutreffen.

Hier sind meine Schritte zum Erstellen eines Gradienten

1) Laden Sie das Beispielprojekt "Wearable: Watch View Stub" aus dem neuesten Android SDK

2) Ändern Sie den rect_background.xml Zeichensatz in:

%Vor%

3) So sieht es auf dem Emulator aus

4) So sieht es aus, wenn ich eine Bildschirmaufnahme vom Gerät aus mache:

5) Aber wenn ich es persönlich betrachte, gibt es schreckliche Streifenbildung: (es sieht im wirklichen Leben viel schlimmer aus; das Bild wird ihm nicht gerecht)

Das Folgende ist ein simuliertes Bild von dem, wie es persönlich aussieht (128 Farben):

Ich habe es auch versucht:

  • Verwenden einer png Bitmap (24-Bit)
  • Verwenden einer png Bitmap mit 1 transparenten Pixel (32-Bit)
  • Verwenden einer png-Bitmap mit allen halbtransparenten Pixeln (32-Bit)
  • Verwenden einer png-Bitmap mit reduzierter Bittiefe (256 Farben)
  • Verwenden eines JPEG mit 100 Qualität.

  • PixelFormat manuell auf RGBA_8888 in Aktivität vor und nach dem Erstellen des Layouts festlegen

  • Dithering in der Aktivität aktivieren
  • Das Laden der Bitmap aus dem Code mit einem benutzerdefinierten Bitmap-Loader (Einstellen des Pixelformats, Dithering usw., siehe Schreckliche Hintergrundbildqualität in Android )
  • Deaktivieren jeglicher Skalierung für ImageView
  • Platzieren Sie das Bild in ausklappbaren, zeichnbaren-hdpi und rohen Ordnern
  • Entpacke das APK und vergewissere dich, dass das Bild unkomprimiert wurde.

All diese Dinge zeigen sich auf die gleiche Weise.

Wie bekomme ich das auf dem Gerät richtig angezeigt?

Sieht jemand anderes dieses Problem? Laut dieser Website hat die LG G Watch eine Farbtiefe oder 24-Bit, die voll sein sollte 8 Bits pro Kanal. Normale Bilder auf dem Gerät erscheinen korrekt - keine merkliche Streifenbildung.

    
Jason 30.12.2014, 13:18
quelle

1 Antwort

4

Ich konnte auf meiner LG G Watch so einen glatten Gardient erzeugen:

Schritt 1:

Stellen Sie das Pixelformat manuell auf RGB_565

ein %Vor%

Schritt 2:

Sie müssen die Hardwarebeschleunigung in der Wear AndroidManifest.xml deaktivieren. Fügen Sie diese Eigenschaft dem Anwendungs-Tag hinzu:

%Vor%

Schritt 3:

Definieren Sie eine neue Methode zum Zeichnen Ihres Hintergrunds:

%Vor%

Schritt 4:

Wende es auf dein Layout an:

%Vor%

Leider konnte ich es nicht innerhalb des WatchViewStub funktionieren lassen, aber ich denke, das hilft Ihnen wahrscheinlich schon bei der Lösung des Problems.

Schritt 1 & amp; 2 sind notwendig, um ein anständiges Ergebnis zu erhalten, Schritt 3 & amp; 4 erhöhen Sie die Qualität erneut.

Sie können die gesamte Lösung hier finden: Ссылка

    
Lukas 04.01.2015, 23:38
quelle

Tags und Links