Android 围绕画布上的文本绘制椭圆形
我想在Android 围绕画布上的文本绘制椭圆形,android,Android,我想在Canvas上的文本周围画一个椭圆形,我正在使用drawwText()方法在Canvas上显示3个文本 现在,当我点击一个特定的文本时,我需要在该文本周围画一个椭圆形,当我们再次点击另一个文本时,椭圆形应该出现在点击的文本上。为此,请给我一些代码建议。提前感谢使用drawOval方法()。。这是该方法的签名 public void drawOval (RectF oval, Paint paint) RectF是用于绘制矩形的类…其构造函数定义如下 RectF(x,y,x+width
Canvas
上的文本周围画一个椭圆形,我正在使用drawwText()
方法在Canvas
上显示3个文本
现在,当我点击一个特定的文本时,我需要在该文本周围画一个椭圆形,当我们再次点击另一个文本时,椭圆形应该出现在点击的文本上。为此,请给我一些代码建议。提前感谢使用drawOval方法()。。这是该方法的签名
public void drawOval (RectF oval, Paint paint)
RectF是用于绘制矩形的类…其构造函数定义如下
RectF(x,y,x+width,y+height);
您可以按如下方式创建其对象
RectF rect = new RectF(x,y,x+width,y+height);...
现在在drawOval方法中传递此对象
canvas.drawOval(rect,paint);
分辨率(480 x 800)
在onCreate()中
创建类
private static class SampleView extends View {
// CONSTRUCTOR
public SampleView(Context context) {
super(context);
setFocusable(true);
}
@SuppressLint("DrawAllocation")
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.WHITE);
//1
Paint paint = new Paint();
paint.setStyle(Paint.Style.STROKE);
paint.setColor(Color.GRAY);
RectF oval1 = new RectF(0, 0, 250,250);
Paint p1 = new Paint();
p1.setColor(Color.BLACK);
canvas.drawText("Parent", 30, 50, p1);
canvas.drawOval(oval1, paint);
//2
paint.setStyle(Paint.Style.STROKE);
paint.setColor(Color.BLUE);
RectF oval2 = new RectF(50, 50, 150, 150);
Paint p2 = new Paint();
p2.setColor(Color.GREEN);
canvas.drawText("Child", 75, 75, p2);
canvas.drawOval(oval2, paint);
}
}
如果我想画半个椭圆呢。当我使用drawArc时,它会画半圆。
private static class SampleView extends View {
// CONSTRUCTOR
public SampleView(Context context) {
super(context);
setFocusable(true);
}
@SuppressLint("DrawAllocation")
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.WHITE);
//1
Paint paint = new Paint();
paint.setStyle(Paint.Style.STROKE);
paint.setColor(Color.GRAY);
RectF oval1 = new RectF(0, 0, 250,250);
Paint p1 = new Paint();
p1.setColor(Color.BLACK);
canvas.drawText("Parent", 30, 50, p1);
canvas.drawOval(oval1, paint);
//2
paint.setStyle(Paint.Style.STROKE);
paint.setColor(Color.BLUE);
RectF oval2 = new RectF(50, 50, 150, 150);
Paint p2 = new Paint();
p2.setColor(Color.GREEN);
canvas.drawText("Child", 75, 75, p2);
canvas.drawOval(oval2, paint);
}
}