Les variables Canvas
suivantes sont introuvables dans 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);
Ces indicateurs ont été supprimés dans l'API 28. Voir ici :
Classe Android.graphics.Canvas
Méthodes supprimées int save (int)
Champs supprimés 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
Cette méthode a été déconseillée dans l'API 26. Voir ici :
Cette méthode est déconseillée au niveau de l'API 26. Utilisez plutôt saveLayer (float, float, float, float, Paint).
Quoi utiliser à la place
Selon le code source Canvas
pour l'API 28, les indicateurs que vous utilisez tous se combinent pour être égaux à la valeur de 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;
Du même code source l'appel à Canvas#saveLayer(left, top, right, bottom, Paint)
utilise par défaut 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);
}
Ainsi, il semble que votre code soit équivalent au code suivant que vous pouvez utiliser en remplacement:
canvas.saveLayer(0, 0, getWidth(), getHeight(), null);
Cette version de saveLayer () n'est disponible que sur l'API 21+. Pour prendre en charge des niveaux d'API inférieurs, utilisez
canvas.saveLayer(0, 0, getWidth(), getHeight(), null, Canvas.ALL_SAVE_FLAG);
Où Canvas.ALL_SAVE_FLAG
Est identique aux valeurs ou'ed ci-dessus.
vous pouvez utiliser canvas.save (); au lieu de la référence canvas.save (Canvas.MATRIX_SAVE_FLAG | CLIP_SAVE_FLAG)