我创建了一个自定义视图并覆盖了该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少...(Ctrl + F1)
在API 21中添加了您从画布使用的drawOval()方法。
public void drawOval (float left, float top, float right, float bottom, Paint paint)
-API 21。
您应该尝试使用带有RectF参数的drawOval()。
public void drawOval (RectF oval, Paint paint)
-API 1
同样适用于drawArc()。使用带有RectF参数的drawArc。
public void drawArc (RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint)
-API 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句