Je veux vérifier ceci pour récupérer différentes images par Internet. Comment faire ça?
121
density = getResources().getDisplayMetrics().density;
// return 0.75 if it's LDPI
// return 1.0 if it's MDPI
// return 1.5 if it's HDPI
// return 2.0 if it's XHDPI
// return 3.0 if it's XXHDPI
// return 4.0 if it's XXXHDPI
Vous pouvez vérifier la densité de l'écran avec:
EDIT Sachez qu'au fur et à mesure qu'Android évolue, d'autres valeurs doivent être incluses dans les
switch
cas. À partir de cette modification, cela inclutDisplayMetrics.DENSITY_TV
etDisplayMetrics.DENSITY_XXHIGH
. Consultez la documentation pour les dernières informations; Je ne vais pas prendre la peine de maintenir cette réponse.la source
density
comme suggéré par SteD.)DENSITY_XXHIGH
. J'ai ajouté un avertissement à la réponse pour couvrir tous les cas futurs. :)À partir de 2018, vous pouvez utiliser la méthode ci-dessous -
Mais comme @Ted l'a souligné, consultez toujours la documentation officielle avant d'utiliser
la source
À partir des réponses ci-dessus, je les ai combinées et créé la fonction ci-dessous:
Maintenant, sur quel appareil vous souhaitez obtenir les informations de densité et dans quel dossier elles seront utilisées, ajoutez simplement la méthode ci-dessus dans cette activité et ajoutez la ligne ci-dessous dans onCreate
la source
Pour que React Native vérifie la taille actuelle de l'appareil
la source
PixelRatio.get()
renverra une plage de valeurs en fonction de la taille d'affichage définie dans les paramètres Android et du dpi. Ces valeurs ne coïncideront pas avec les valeurs exactes que vous avez indiquées.Sur certains appareils (le mien est le Galaxy Tab3), la densité et la densitéDpi renvoient des valeurs étranges comme 1,33 (densité), 213 (densitéDpi). Ma solution est donc d'ajouter ces indicateurs:
à 4 fichiers values.xml, placez-les dans les dossiers res / values- [xxx] / correspondants.
la source