Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 围绕画布上的文本绘制椭圆形_Android - Fatal编程技术网

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

}