web-dev-qa-db-fra.com

Android canvas draw line - rendre la ligne plus épaisse

Cela semble être quelque peu trivial, cependant dans mon Android, j'utilise le canevas pour dessiner une série de lignes qui sont connectées entre elles. Pour une raison quelconque, mes lignes sont très très faibles et fines Je me demandais comment épaissir mes lignes? Voici mon code ..

for(int i=1; i<myArrayListOfValues.size(); i++){

        Paint myPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
        myPaint.setStrokeWidth(8/*1 /getResources().getDisplayMetrics().density*/);
        myPaint.setColor(0xffff0000);   //color.RED

        canvas.drawLine(myArrayListOfValues.get(i), myArrayListOfValues.get(i), myArrayListOfValues.get(i-1), myArrayListOfValues.get(i-1), myPaint);       

    }

Une autre chose est que mes lignes et cercles que je dessine sont TOUJOURS noirs. SetColor () ne semble jamais avoir d'effet. J'ai essayé d'utiliser les noms de couleur (par exemple color.red) et même leurs valeurs hexadécimales (par exemple 0xffff0000)

25
user859348

Essayez d'inclure cette ligne juste après avoir décliné 'mypaint'

 mypaint.setStyle(Paint.Style.STROKE); 
19
Shaunak

Modifiez la valeur de

myPaint.setStrokeWidth(8);

à un entier plus grand, par exemple:

myPaint.setStrokeWidth(50);

cela rendra la ligne plus épaisse

voir aussi Paint.setStrokeWidth (float)

37
NobodyNemo

Que se passe-t-il si vous supprimez ANTI_ALIAS_FLAG? En outre, vous devez déplacer le constructeur Paint en dehors de la boucle for, afin qu'il ne soit pas recréé à chaque itération.

1
Will Kru