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 1canvas.draw椭圆形(0,0,getWidth(),getHeight(),Paint)代码>正在API级别21中添加。请参阅API调用
如果您想在api级别低于21的情况下绘制椭圆,则应按以下方式使用它:
RectF rect=new RectF(0, 0, getWidth(), getHeight());
public void drawOval (rect, paint);