2017-04-10 1 views
0

Comme on le voit sur cette image: enter image description heretaille d'écran Android inconsistance

J'ai un rectangle arrondi qui est la taille de 1082 x 1796, et moi getWindowManager().getDefaultDisplay() pour obtenir et imprimer les valeurs de pixels de l'écran comme on le voit dans le cercle en bas à gauche. Toutefois, lorsque je dessine ce bitmap, cela se produit: enter image description here

La taille de l'écran est-elle différente de la méthode getDefaultDisplay()? Comment puis-je réparer ça?

Répondre

0

Je pense que votre forme est vue par le système comme un 9patch. Il utilise les première et dernière lignes/colonnes afin de savoir comment redimensionner l'image afin de l'afficher de manière cohérente.

C'est pourquoi il existe une différence de 2px en largeur et en hauteur. Je pense que vous pouvez le corriger en modifiant le png et en supprimant les première et dernière lignes/colonnes, ou simplement utiliser un autre moyen pour dessiner l'image. Peut-être que l'utilisation d'un autre format (jpg? Bmp?) Pour l'image pourrait faire le travail. Je ne suis pas sûr.

0

vous pouvez le faire avec calcul pour tous les périphériques adapter l'écran en fonction de la largeur et la hauteur de l'écran de l'appareil:

DisplayMetrics dm = new DisplayMetrics(); 
         ((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(dm); 

int width = dm.widthPixels; 
int height = width * imageHeight/imageWidth; 

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(width, height);