Antialiased abgerundete Ecken auf Android ImageView [duplizieren]

9

Ich bin neu in Android Dev, und ich habe seit ein paar Stunden versucht, schöne und glatte abgerundete Ecken zu einem ImageView hinzuzufügen, ohne Erfolg.

Das erste, was ich ausprobiert habe, ist, die Ecken meiner Bilder direkt zu runden, aber das bedeutet, dass ich die Bitmap ändern muss, und da ich die rohen behalten muss und diese ziemlich groß sind, ist das nicht wirklich speicherfreundlich. Dies würde auch andere Schwierigkeiten verursachen, da mein ImageView flüssig ist.

Zweitens habe ich versucht, die Methode clipPath zu verwenden, nachdem ich meine Ansicht unterklassifiziert habe. Das funktioniert, aber Ecken sind Alias. Ich habe dann versucht, einen PaintFlagsDrawFilter hinzuzufügen, um das Aliasing zu implementieren, aber das hat nicht funktioniert. Ich benutze monodroid, und ich fragte mich, ob das in Java funktionieren sollte.

Hier ist mein Code (C #):

%Vor%

Danke für Ihre Hilfe!

    
Alexandre de Champeaux 20.06.2012, 01:30
quelle

2 Antworten

2

Ich habe ein RoundedImageView basierend auf Romain Guys Beispielcode , der diese Logik in ein ImageView umschließt, das Sie einfach verwenden können. Es unterstützt Grenzen und Antialiasing aus der Box.

Es ist effizienter als andere Beispiele mit abgerundeten Ecken, weil es keine weitere Kopie der Bitmap erstellt, und verwendet auch nicht clipPath, das zweimal auf die Arbeitsfläche zeichnet.

    
vinc3m1 22.02.2013 20:13
quelle
1

Verwenden Sie den folgenden Code

%Vor%

und rufe diese Methode wie

auf %Vor%     
Vivek Kumar Srivastava 20.06.2012 05:11
quelle