![](/img/trans.png)
[英]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.