小编jim*_*jim的帖子

自定义视图:Canvas绘制方法会产生API错误

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

但是,Android Studio说我canvas.drawOvalcanvas.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)

android android-canvas android-view android-studio

2
推荐指数
1
解决办法
2943
查看次数