[英]Getting Error while Running Flutter App On Android (Android X) Incompatibility
[英]Getting Canvas.drawPaint not supported error while running an android app
我在Android代码中使用canvas
。 如下所示:
public class RecognitionScoreView extends View {
private static final float TEXT_SIZE_DIP = 24;
private List<Recognition> results;
private final Paint fgPaint;
private final Paint bgPaint;
private static String TAG = RecognitionScoreView.class.getSimpleName();
public RecognitionScoreView(final Context context, final AttributeSet set) {
super(context, set);
float textSizePx = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, TEXT_SIZE_DIP, getResources().getDisplayMetrics());
fgPaint = new Paint();
fgPaint.setTextSize(textSizePx);
bgPaint = new Paint();
bgPaint.setColor(0xcc4285f4);
}
public void setResults(final List<Recognition> results) {
this.results = results;
Log.i(TAG, "setResults: Results are " + results);
postInvalidate();
}
@Override
public void onDraw(final Canvas canvas) {
final int x = 10;
int y = (int) (fgPaint.getTextSize() * 1.5f);
canvas.drawPaint(bgPaint);
if (results != null) {
for (final Recognition recog : results) {
canvas.drawText(recog.getTitle(), x, y, fgPaint);
Log.i(TAG, "onDraw: Object is -- " + recog.getTitle());
Log.i(TAG, "onDraw: Object location is -- " + recog.getLocation());
Log.i(TAG, "onDraw: Object id is -- " + recog.getId());
y += fgPaint.getTextSize();
}
}
/* if (results != null) {
Intent intent = new Intent(context, ResultActivity.class);
context.this.startActivity(intent);
}*/
}
}
运行代码时,出现以下错误:
不支持Canvas.drawPaint。 (忽略此会话)如何解决此问题?
将您的构造函数更改为
public RecognitionScoreView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, set);
float textSizePx = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, TEXT_SIZE_DIP, getResources().getDisplayMetrics());
fgPaint = new Paint();
fgPaint.setTextSize(textSizePx);
bgPaint = new Paint();
bgPaint.setColor(0xcc4285f4);
}
我认为bgPaint存在问题,在某些情况下不会调用您的构造函数。 结果是bgPaint == null ,如果您覆盖链中的最后一个构造器,则将初始化bgPaint
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.