Android 自定义视图:画布绘制方法给出API错误

Android 自定义视图:画布绘制方法给出API错误,android,android-studio,android-canvas,android-view,Android,Android Studio,Android Canvas,Android View,我创建了一个自定义视图并覆盖了onDraw方法 然而,Android Studio说我的canvas.drawOval和canvas.drawArc调用需要我将最小API设置为21 画布从API 1开始就存在了,对吗 import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.util.AttributeSet; import andro

我创建了一个自定义视图并覆盖了
onDraw
方法

然而,Android Studio说我的
canvas.drawOval
canvas.drawArc
调用需要我将最小API设置为21

画布从API 1开始就存在了,对吗

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.widget.Button;

public class PieButton extends Button {

    float progress = 0f;

    public PieButton(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public void onDraw(Canvas canvas) {
        Paint paint = new Paint();

        paint.setStyle(Paint.Style.FILL);
        paint.setColor(0xFF00C853);  
        canvas.drawOval(0, 0, getWidth(), getHeight(), paint);

        paint.setStyle(Paint.Style.FILL);
        paint.setColor(0xFF000000);
        canvas.drawArc(0, 0, getWidth(), getHeight(), 0f, progress*(-360), true, paint);
    }

    public void setProgress (float inputProgress) {
        progress = inputProgress;
    }
}
我收到的错误消息是:

调用需要API级别21(当前最小值为16):android.graphics.Canvas#drawOval-less。。。(Ctrl+F1)

API 21中添加了从画布使用的drawOval()方法

公共虚空绘图椭圆(左侧浮标、顶部浮标、右侧浮标、底部浮标、油漆)
-API 21

您应该尝试将drawOval()与RectF参数一起使用

公共空间绘制椭圆(矩形椭圆、油漆)
-API 1

这同样适用于drawArc()。使用drawArc和RectF参数

public void drawArc(RectF-oval、float-startAngle、float-sweepingangle、boolean-useCenter、Paint-Paint)
-API 1

canvas.draw椭圆形(0,0,getWidth(),getHeight(),Paint)正在API级别21中添加。请参阅API调用

如果您想在api级别低于21的情况下绘制椭圆,则应按以下方式使用它:

RectF rect=new RectF(0, 0, getWidth(), getHeight());

public void drawOval (rect, paint);