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

Blending ausschalten/umgehen für Canvas.drawXXX

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von isam2k, 06.01.2012.

  1. isam2k, 06.01.2012 #1
    isam2k

    isam2k Threadstarter Erfahrener Benutzer

    Beiträge:
    239
    Erhaltene Danke:
    43
    Registriert seit:
    27.04.2010
    Hi zusammen, bloss eine ganz kurze Frage. Hab bereits die Referenz gewälzt aber noch nichts Nützliches gefunden, also hab ich mir gedacht, ich frage mal kurz hier nach.

    Folgendes Problem: Ich hab eine bitmap (komplett weiss), wenn ich nun mittels canvas auf diese bitmap ein komplett transparentes Rechteck zeichnen möchte (color = 0x00000000), dann hab ich das problem, dass an der bitmap nichts geändert wird, da beim blending vermutlich irgendsowas gerechnet wird

    Code:
    NeueFarbeRotAnteil = (AlteFarbeRotAnteil * (ALPHA_MAX - MalFarbeAlpha)) + (MalFarbeRotAnteil * MalFarbeAlpha);
    ...
    
    Das möchte ich aber nicht, ich möchte, dass die alte Farbe einfach durch die neue Farbe ersetzt wird.

    Code:
    NeueFarbeRotAnteil = MalFarbeRotAnteil;
    
    Ums blending kümmere ich mich dabei selbst.

    Ich nehme mal an, dass man im Paint- Objekt dazu eine Flag setzen muss, ich seh aber grad beim besten Willen nicht welche... jemand eine Ahnung?

    Danke im Voraus.
     
  2. isam2k, 06.01.2012 #2
    isam2k

    isam2k Threadstarter Erfahrener Benutzer

    Beiträge:
    239
    Erhaltene Danke:
    43
    Registriert seit:
    27.04.2010
    Lösung gefunden:

    statt:
    Code:
    rect.set(...);
    paint.setColor(...);
    canvas.drawRect(rect, paint);
    
    mache ich nun:
    Code:
    canvas.save();
    rect.set(...);
    canvas.clipRect(rect);
    canvas.drawColor(color, PorterDuff.Mode.SRC);
    canvas.restore();
    
    http://developer.android.com/reference/android/graphics/PorterDuff.Mode.html
     

Diese Seite empfehlen