Android Canvas Draw Line - сделать линию толще - PullRequest
24 голосов
/ 26 июля 2011

Кажется, это должно быть несколько тривиально, однако в моем приложении для Android я использую canvas, чтобы нарисовать серию линий, которые связаны между собой. По некоторым причинам мои линии очень очень слабые и тонкие. Мне было интересно, как я могу сделать мои линии толще? Вот мой код ..

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);       

    }

Другое дело, что мои линии и круги, которые я рисую, ВСЕГДА черные ... setColor (), кажется, никогда не оказывает никакого влияния. Я попытался использовать названия цветов (например, color.red) и даже их шестнадцатеричные значения (например, 0xffff0000)

Ответы [ 3 ]

28 голосов
/ 07 декабря 2015

Измените значение

myPaint.setStrokeWidth(8);

на большее целое число, например:

myPaint.setStrokeWidth(50);

это сделает линию толще

см. Также Paint.setStrokeWidth (поплавок)

18 голосов
/ 26 июля 2011

Попробуйте включить эту строку сразу после того, как вы объявили «mypaint»

 mypaint.setStyle(Paint.Style.STROKE); 
1 голос
/ 26 июля 2011

Что произойдет, если вы удалите ANTI_ALIAS_FLAG?Кроме того, вы должны переместить конструктор Paint за пределы цикла for, чтобы он не создавался заново при каждой итерации.

...