2016-06-15 2 views
1

Я рисую круг в растровом изображении и устанавливаю этот растровый рисунок в ImageView. круг рисуется правильно, но я не хочу, чтобы он был заполненным кругом, есть ли способ сделать заполненную область прозрачной? я использую следующий кодКак нарисовать круг на растровом изображении без его заполнения?

Bitmap bmp = RasterImageConverter.convertToBitmap(_loadedImage, ConvertToImageOptions.NONE.getValue()); 
Canvas c = new Canvas(bmp); 
c = new Canvas(bmp); 
myimgview.draw(c); 
Paint p = new Paint(); 
p.setColor(Color.RED); 
float x=(float) circleX; 
float y=(float) circleY; 
float Tx=(float) textX; 
float Ty=(float)textY; 
// c.drawLine(x, y, xend, yend, p); 
c.drawCircle(300, 300, 200, p); 
c.drawText(myText, Tx, Ty, p); 
myimgview.setImageBitmap(bmp); 

ответ

0

Вы должны изменить стиль Paint гладить:

Paint p = new Paint(); 
p.setStyle(Paint.Style.STROKE); 
+0

Спасибо, что работали :) –

2

Вам необходимо сообщить краске, что вы не используете стиль заполнения, а стиль штриха.

The default is FILL

Стиль определяет, если примитивно втягиваются заполнена, погладил, или оба (в том же цвете). По умолчанию используется FILL.

Так что ваш код должен быть:

Paint p = new Paint(); 
p.setStyle(Paint.Style.STROKE); 

Here объясняется различие между различными стилями.

ХОДА Геометрия и текст обращается с этим стилем будет гладить, уважая инсульт, связанных с поля на краске.

FILL Геометрия и текст, нарисованный этим стилем, будут заполнены, игнорируя все настройки, связанные с штрихом в краске.

FILL_AND_STROKE Геометрия и текст обращается с этим стилем будут как заполнены и погладили в то же время, уважая инсульт, связанные с полем на краске.

+0

Спасибо, что работали :) –

+0

@Android_Learner, если вы обнаружите, что ответ полезно вы можете upvote его и в конце концов, флаг как правильный ответ с зеленым flag –

+0

да я сделал ...... –

0

Вы почти там ... Вы должны установить style of the Paint объект ...

вызовом метода

p.setStyle(Paint.Style.STROKE); 

Варианты:

enter image description here

Пример:

Bitmap bmp = RasterImageConverter.convertToBitmap(_loadedImage, ConvertToImageOptions.NONE.getValue()); 
Canvas c = new Canvas(bmp); 
c = new Canvas(bmp); 
myimgview.draw(c); 
Paint p = new Paint(); 
p.setColor(Color.RED); 
p.setStyle(Paint.Style.STROKE); 
+0

Спасибо, что сработал :) –

+0

добро пожаловать, не забудьте проголосовать/принять ответ –

+0

да я сделал ...... :) –

Смежные вопросы