gpt4 book ai didi

android - 自定义 View : Canvas draw methods give API error

转载 作者:太空狗 更新时间:2023-10-29 15:32:27 24 4
gpt4 key购买 nike

我创建了一个自定义 View 并覆盖了 onDraw 方法。

但是,Android Studio 说我的 canvas.drawOvalcanvas.drawArc 调用要求我将我的最小 API 设置为 21。

Canvas 从 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;
}
}

我得到的错误信息是:

Call requires API level 21 (current min is 16): android.graphics.Canvas#drawOval less... (Ctrl+F1)

最佳答案

API 21 中添加了您在 Canvas 中使用的 drawOval() 方法。

public void drawOval(向左浮动,向右浮动,向右浮动,向底部 float ,绘制油漆) - 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

关于android - 自定义 View : Canvas draw methods give API error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30316582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com