ImageView mit eigenem Rahmen (Custom View)

  • 2 Antworten
  • Neuester Beitrag
Diskutiere ImageView mit eigenem Rahmen (Custom View) im Android App Entwicklung im Bereich Betriebssysteme & Apps.
cypressious

cypressious

Ambitioniertes Mitglied
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?
 
S

swordi

Lexikon
warum nicht einfach ein relativelayout mit einem background

und darin dein bild zentriert einbinden?
 
cypressious

cypressious

Ambitioniertes Mitglied
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?
 
Ähnliche Themen - ImageView mit eigenem Rahmen (Custom View) Antworten Datum
4