2017-10-03 17 views
1

Ce que je suis en train de faire:Dessiner une ligne lisse, pixellisée dans Android

enter image description here

Ce que je veux:

enter image description here

Je dessine en connectant deux coordonnées consécutives avec:

Paint paint = new Paint(); 
paint.setColor(Color.DKGRAY); 
paint.setStrokeWidth(75); 
paint.setStrokeCap(Paint.Cap.ROUND); 

// Tried without success: 
paint.setAntiAlias(false); 

// Also tried without success: 
paint.setAntiAlias(true); 

// Loop list<Point>; keep track of previous Point 
canvas.drawLine(xPrev, yPrev, x, y, paint); 

Répondre

1

Utilisez paint.setAntiAlias(true); pour obtenir un effet lisse.

Ou utilisez paint.setMaskFilter(new BlurMaskFilter(/*args*/)); pour un effet flou.

Assurez-vous également que l'accélération matérielle est désactivée dans le manifeste Android.

Si ce n'est pas toujours comme prévu, utilisez alias contre tout dessin, l'échelle puis vers le bas et l'échelle, ou si possible dessiner petit chemin taille et l'échelle vers le haut.

+0

sortie est le même. –

+0

Cela ne semble pas fonctionner à moins d'utiliser le rendu logiciel. –

+0

Ouais, c'est ce que je voulais dire en disant pour désactiver l'accélération matérielle. –

-1

Essayez d'utiliser paint.setStrokeCap(Paint.Cap.ROUND); et paint.setStrokeJoin(). Hope it helps