如何在位图上绘制圆圈而不填充它?

时间:2016-06-15 15:21:21

标签: java android canvas bitmap

我在位图上绘制一个圆圈并将此位图设置为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);

4 个答案:

答案 0 :(得分:2)

你需要通知油漆你不使用填充样式,而是使用笔触样式。

The default is FILL

  

样式指定绘制的图元是否被填充,描边或两者(以相同的颜色)。 默认为FILL。

所以你的代码必须是:

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

Here解释了不同风格之间的差异。

  

<强> STROKE   使用此样式绘制的几何和文本将被描边,尊重绘画上与笔划相关的字段。

     

<强> FILL   将填充使用此样式绘制的几何和文本,忽略绘画中与笔划相关的所有设置。

     

<强> FILL_AND_STROKE   使用此样式绘制的几何和文本将同时填充和描边,尊重绘画中与笔划相关的字段。

答案 1 :(得分:0)

您需要将“绘画”样式更改为笔划:

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

答案 2 :(得分:0)

在paint p实例上使用setStyle(Paint.Style.STROKE)方法。

答案 3 :(得分: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);
相关问题