次のCanvas
変数はAndroid 28。
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);
これらのフラグはAPI 28で削除されました。 こちら を参照してください:
クラスAndroid.graphics.Canvas
削除されたメソッドint save(int)
削除されたフィールドint CLIP_SAVE_FLAG
int CLIP_TO_LAYER_SAVE_FLAG
int FULL_COLOR_LAYER_SAVE_FLAG
int HAS_ALPHA_LAYER_SAVE_FLAG
int MATRIX_SAVE_FLAG
このメソッドはAPI 26で廃止されました。 ここ を参照してください:
このメソッドは、APIレベル26で廃止されました。代わりに、saveLayer(float、float、float、float、Paint)を使用してください。
代わりに使用するもの
API 28のCanvas
ソースコードによると、使用するすべてのフラグは_ALL_SAVE_FLAG
_の値と等しくなるように結合されます。
_public static final int ALL_SAVE_FLAG = 0x1F;
public static final int MATRIX_SAVE_FLAG = 0x01;
public static final int CLIP_SAVE_FLAG = 0x02;
public static final int HAS_ALPHA_LAYER_SAVE_FLAG = 0x04;
public static final int FULL_COLOR_LAYER_SAVE_FLAG = 0x08;
public static final int CLIP_TO_LAYER_SAVE_FLAG = 0x10;
_
同じ ソースコード からのCanvas#saveLayer(left, top, right, bottom, Paint)
の呼び出しは、デフォルトで_ALL_SAVE_FLAG
_を使用します。
_/**
* Convenience for {@link #saveLayer(RectF, Paint)} that takes the four float coordinates of the
* bounds rectangle. */
public int saveLayer(float left, float top, float right, float bottom, @Nullable Paint paint) {
return saveLayer(left, top, right, bottom, Paint, ALL_SAVE_FLAG);
}
_
したがって、あなたのコードは次のコードと同等であるように見えます。
_canvas.saveLayer(0, 0, getWidth(), getHeight(), null);
_
このバージョンのsaveLayer()は、API 21以降でのみ使用できます。より低いAPIレベルをサポートするには、
_canvas.saveLayer(0, 0, getWidth(), getHeight(), null, Canvas.ALL_SAVE_FLAG);
_
ここで、_Canvas.ALL_SAVE_FLAG
_は、上記のor'ed値と同じです。
canvas.save();を使用できます。 canvas.save(Canvas.MATRIX_SAVE_FLAG | CLIP_SAVE_FLAG)の代わりに参照