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

ImageView mit eigenem Rahmen (Custom View)

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von cypressious, 27.02.2011.

  1. cypressious, 27.02.2011 #1
    cypressious

    cypressious Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    80
    Erhaltene Danke:
    22
    Registriert seit:
    04.12.2010
    Hallo zusammen,

    ich möchte in einem ImageView ein Bitmap darstellen, jedoch will ich einen Rahmen drum herum.
    Dazu habe ich ein Custom View erstellt, dass von ImageView erbt. Darin überschreibe ich die onDraw Methode folgendermaßen.
    Code:
        @Override
        protected void onDraw(Canvas canvas) {
            Bitmap b = Bitmap.createBitmap(canvas.getWidth(), canvas.getHeight(),
                    Bitmap.Config.RGB_565);
    
            Canvas cn = new Canvas(b);
            super.onDraw(cn);
            [B]drawBorder[/B](canvas, b, borderColor);
    
        }
    Die Methode drawBorder erstellt eine verkleinderte Kopie des Bitmaps, dass die onDraw Methode der Oberklasse gezeichnet hat und zeichnet es nebst Rahmen wiederrum in den Canvas, der übergeben wurde.

    Das Ergebnis entspricht zwar mehr oder weniger dem, das ich wollte, jedoch ist das Bild aufgrund der Verkleinerung sehr schwammig und das sowohl bei
    Code:
    Bitmap.createScaledBitmap(b, b.getWidth() - 12, b.getHeight() - 12, false);
    als auch
    Code:
    Bitmap.createScaledBitmap(b, b.getWidth() - 12, b.getHeight() - 12, true);
    .

    Gibt es eine elegantere Möglichkeit einen Rahmen anzubringen?
     
  2. swordi, 27.02.2011 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    warum nicht einfach ein relativelayout mit einem background

    und darin dein bild zentriert einbinden?
     
  3. cypressious, 28.02.2011 #3
    cypressious

    cypressious Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    80
    Erhaltene Danke:
    22
    Registriert seit:
    04.12.2010
    Das ImageView soll allerdings Bitmaps verschiedener Formate aufnehmen und dabei das Seitenverhältnis erhalten. Es hat eine Maximalhöhe, aber keine MAximalbreite (außer der Bildschirmbreite). Könnte ein RelativeLayout diese Größenänderungen mitmachen?
     

Diese Seite empfehlen