1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

32bit Bitmap mit Alpha zeichnen?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Kernle 32DLL, 21.11.2010.

  1. Kernle 32DLL, 21.11.2010 #1
    Kernle 32DLL

    Kernle 32DLL Threadstarter Neuer Benutzer

    Beiträge:
    23
    Erhaltene Danke:
    0
    Registriert seit:
    06.01.2010
    Moin,

    Ich habe derzeit ein kleines Problem. Ich habe ein 32bit Bild mit eine Alphakanal, das ich per Asset lade (wird als ARGB_8888 geladen).

    Wenn ich dieses Bild jetzt als Bitmap auf ein Canvas einer View zeichne (onDraw), dann erhalte ich typische 16bit Konvertierungs Farbfehler (banding).

    Ich weiß das Android nur 16bit darstellen kann, also wie konvertiere ich mein Bild im Code so, dass es ohen Farbfehler dargestellt wird? Ich habe versucht es als ARGB_4444 zu laden, aber damit bekam ich nur andere Grafikfehler (Blockbildung), es per BitmapFactory.Options mit Dithering zu laden (kein Effekt), sowie mit Paint die Dithering aktiviert hatte zu zeichnen (auch kein Effekt).

    Da ich im moment kein Android Handy zum testen habe, könnte es sich um ein Emulator Problem handeln. Falls nicht, wie löse ich das Problem?

    So long,
    Kernle
     
  2. ko5tik, 21.11.2010 #2
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Es kann sehr gut sein, das der Bitmap bereits bei dem erstellen von apk in die 16 bit umgewandelt wurde - has du den Farbraum von BItmap nach dem laden überprüft? Wenn es der Fall sein sollte,
    soll der Bitmap in die raw/ und nicht in drawable/

    Ansonsten auf parleys.com nach dem devoxx-Channel suchen, und aktuelle Presentationen von Romain Gui / Chet Haase anschauen ( von letzten Donnerstag) - die haben es erfunden ;)
     
  3. Kernle 32DLL, 21.11.2010 #3
    Kernle 32DLL

    Kernle 32DLL Threadstarter Neuer Benutzer

    Beiträge:
    23
    Erhaltene Danke:
    0
    Registriert seit:
    06.01.2010
    Wie gesagt, ich lade sie per Asset, da werden sie nicht vorkonvertiert. Habe aber auch nachgeprüft, sie werden tatsächlich (ohne das ich sie anderweitig verändere) als ARGB_8888 geladen.
     
  4. ko5tik, 22.11.2010 #4
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Wie definierst du deinen View? Ich erinere mich undeutlich das es wichtig ist, das
    da die Transparenz eingeschaltet wird ( da gab es gute Zusammenstellung, die ich aber nicht mehr finde)
     

Diese Seite empfehlen