安卓在API级别28中找不到画布变量
在Android 28中找不到以下Canvas
变量
canvas.saveLayer(0, 0, getWidth(), getHeight(), null,
Canvas.MATRIX_SAVE_FLAG |
Canvas.CLIP_SAVE_FLAG |
Canvas.HAS_ALPHA_LAYER_SAVE_FLAG |
Canvas.FULL_COLOR_LAYER_SAVE_FLAG |
Canvas.CLIP_TO_LAYER_SAVE_FLAG);
# 1 楼答案
你可以用
canvas.save();
代替canvas.save(Canvas.MATRIX_SAVE_FLAG|CLIP_SAVE_FLAG)
参考文献# 2 楼答案
这些标志已在API 28中删除。见here:
该方法在API 26中被弃用。见here:
改用什么
根据API 28的
Canvas
源代码,您使用的所有标志组合起来等于ALL_SAVE_FLAG
的值:从同一个source code调用
Canvas#saveLayer(left, top, right, bottom, paint)
默认使用ALL_SAVE_FLAG
:因此,看起来您的代码相当于以下代码,您可以将其用作替换:
此版本的saveLayer()仅在API 21+上可用。要支持较低的API级别,请使用
其中
Canvas.ALL_SAVE_FLAG
与上面的或'ed值相同