So drehen Sie einen Zeichenbereich mit aktiviertem Anti-Aliasing

8

Ich muss ein ImageView um ein paar Grad drehen. Ich mache das, indem ich ImageView unterklassiere und onDraw()

überlaste %Vor%

Das Problem ist, dass das Bild, das Ergebnisse liefert, eine Reihe von Unebenheiten zeigt.

Ссылка

Wie kann ich ein ImageView antialiasieren, das ich rotieren muss, um Jaggies zu eliminieren? Gibt es einen besseren Weg, dies zu tun?

    
emmby 08.06.2010, 23:30
quelle

5 Antworten

4

Wenn Sie wissen, dass Ihr Drawable ein BitmapDrawable ist, können Sie im Paint der Bitmap Anti-Aliasing verwenden, um etwa Folgendes zu tun:

%Vor%     
emmby 09.06.2010, 19:24
quelle
3

Setzen Sie Antialias und filterBitmap auf die Farbe, die die Bitmap zeichnet. Ich hatte ein ähnliches Problem und das funktionierte für mich:

%Vor%     
Primoz990 08.05.2012 10:04
quelle
1

Ich habe Folgendes getan, um es zum Laufen zu bringen:

In AndroidManifest.xml Ich habe die Hardware-Beschleunigung <application android:hardwareAccelerated="true"> aktiviert.

Anstatt eine benutzerdefinierte Draw-Methode zu verwenden, habe ich den Layer-Typ der Parent-View auf Hardware-beschleunigend mit aktiviertem Anti-Aliasing geändert und meine Subviews wie folgt hinzugefügt:

%Vor%

Ich muss hinzufügen, dass das Clipping bei diesem Ansatz nicht deaktiviert werden kann.

    
RhodanV5500 30.09.2014 12:44
quelle
0

Diese Drehung löst nur einen Teil des Problems - gezackte Kanten, aber das Bild wurde stattdessen seltsam.

ifound nur eine Lösung noch: in Auszahlung oder Versand Ziehungsmethode

%Vor%     
Roger Alien 18.08.2011 07:29
quelle
0

@ Primoz990's Lösung hat für mich funktioniert :) Ich habe auch Dithering aktiviert, also ist mein endgültiger Code, der die gezackten Ränder bei der Rotation entfernt, das:

%Vor%     
kpsfoo 15.08.2012 09:33
quelle

Tags und Links