ImageView mit eigenem Rahmen (Custom View)

cypressious

cypressious

Ambitioniertes Mitglied
23
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?
 
warum nicht einfach ein relativelayout mit einem background

und darin dein bild zentriert einbinden?
 
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

R
  • RudolfHagen
Antworten
1
Aufrufe
652
koje71
koje71
FabianDev
Antworten
5
Aufrufe
557
swa00
swa00
R
Antworten
3
Aufrufe
1.625
Ritartet
R
Zurück
Oben Unten