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

Transparenter Canvas

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von manu, 07.01.2010.

  1. manu, 07.01.2010 #1
    manu

    manu Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    329
    Erhaltene Danke:
    25
    Registriert seit:
    29.03.2009
    Phone:
    Galaxy Nexus
    Guten Abend,
    man kann in der Manifest.xml angeben, dass die Anwendung einen transparenten Hintergrund hat. Das funktioniert mit einer main.xml auch perfekt. Aber sobald ich in diese main.xml mein eigenes Canvas reinlege oder das Canvas direkt mit "setContentView" anspreche, ist die Transparenz weg.

    Nun meine Frage: Wie schaffe ich es, dass das Canvas transparent wird?
    Alternativ würdet ihr mir auch helfen, wenn ihr mir sagt, wie ich zur Laufzeit weitere Bilder in der main.xml positionieren kann.

    Danke schonmal.


    Gruß Manu
     
  2. garak, 09.01.2010 #2
    garak

    garak Ehrenmitglied

    Beiträge:
    8,270
    Erhaltene Danke:
    4,794
    Registriert seit:
    12.12.2009
    Du musst unterscheiden zwischen Resourcen und Daten zur Laufzeit. Alles was du in einer der Xml-Dateien zur Entwurfszeit anlegst, ist eine Resource und lässt sich zur Laufzeit nicht mehr ohne weiteres ändern. Lediglich selektieren.

    Willst du hingegen zur Laufzeit Daten anzeigen (Text, Bilder etc.) dann schreibst du sie einfach in die entsprechende Komponente. Aber eben nicht über den Umweg sie erst in eine der Resourcen-Dateien schreiben zu wollen.

    Und nebenbei bemerkt kannst du zur Laufzeit auch jederzeit die Eigenschaften der Komponenten ändern, also auch die Farbe bzw. Transparenz eines Canvas.

    Gruß
    Chris
     
  3. manu, 09.01.2010 #3
    manu

    manu Threadstarter Fortgeschrittenes Mitglied

    Beiträge:
    329
    Erhaltene Danke:
    25
    Registriert seit:
    29.03.2009
    Phone:
    Galaxy Nexus
    Danke für die Erklärung.

    Ich zeichne zur Laufzeit ein Bild, welches ich dann einer Resource (ImageView) zuweise.

    Das klappt ganz gut, ist leider nicht so schnell, wie ein Cavas, das man direkt in den Ausgabe-Buffer schreibt (onDraw).

    Zu dem transparenten Cavas. Erstaunlicherweise geht das nicht. Ich habe es mit drawARGB und drawColor (ich hoffe, die Methoden heißen so, kann gerade nicht nachschauen) versucht. Mein Display hatte bestenfalls eine hellgraue Farbe. Aber transparent wurde das Canvas nie.


    Gruß Manu
     

Diese Seite empfehlen