jim*_*jim 2 android android-canvas android-view android-studio
我创建了一个自定义视图并覆盖了该onDraw
方法.
但是,Android Studio说我canvas.drawOval
和canvas.drawArc
调用要求我将最小API设置为21.
从API 1开始,Canvas一直存在吗?
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;
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误信息是:
调用需要API级别21(当前最小值为16):android.graphics.Canvas#drawOval less ...(Ctrl + F1)
dis*_*oom 15
您在canvas中使用的drawOval()方法已添加到API 21中.
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().将drawArc与RectF参数一起使用.
public void drawArc (RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint)
- API 1
归档时间: |
|
查看次数: |
2943 次 |
最近记录: |