J'ai donc un petit problème, j'écris une fonction qui doit envoyer la largeur de l'écran au serveur. J'ai tout fait fonctionner et j'utilise:
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
pour obtenir la largeur. Cependant, la fonction .getWidht () est obsolète et indique que vous devez utiliser:
Point size = new Point();
display.getSize(size);
Mais cette fonction n'est disponible que pour le niveau d'api 13 ou plus, et mon sdk minimum est 8. Alors, que puis-je faire? Est-ce sûr si je reste avec getWidth? Pourquoi ajouter de nouvelles fonctions et ne pas les rendre rétrocompatibles?
Peut-être que cette approche sera utile:
DisplayMetrics displaymetrics = new DisplayMetrics();
mContext.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int screenWidth = displaymetrics.widthPixels;
int screenHeight = displaymetrics.heightPixels;
Vous pouvez vérifier le niveau d'API au moment de l'exécution et choisir lequel utiliser, par exemple:
final int version = Android.os.Build.VERSION.SDK_INT;
final int width;
if (version >= 13)
{
Point size = new Point();
display.getSize(size);
width = size.x;
}
else
{
Display display = getWindowManager().getDefaultDisplay();
width = display.getWidth();
}
Si vous voulez être correct, utilisez cette approche>
int sdk = Android.os.Build.VERSION.SDK_INT;
if (sdk < Android.os.Build.VERSION.RELEASE) {
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
} else {
Point size = new Point();
display.getSize(size);
}