2013-08-30 1 views
0

Je fais une application de puzzle avec des animations. Les animations apparaissent beaucoup plus rapidement sur les petits écrans puis sur les plus grands écrans. Je suppose que c'est parce que sur un grand écran, ils se déplacent sur une plus longue distance. J'allais changer la vitesse de lecture en fonction de la taille de l'écran. Je cn obtenir la taille de l'écran en pixcels est-il un moyen de l'obtenir en dpi?Android: Y at-il un moyen d'obtenir la taille de l'écran?

+0

Voir: http://stackoverflow.com/questions/8295986/how-to-calculate-dp-from-pixels-in-android-programmatically – powerj1984

+0

Verrouillez-vous des animations sur un framerate particulier? Sinon, la vitesse de vos animations dépend probablement de la vitesse à laquelle l'appareil peut dessiner le ou les objets en question. –

+0

Le problème est qu'il faut le même laps de temps pour déplacer un objet du côté droit vers le côté gauche de l'écran sur les deux petits écrans (2 pouces de large, ou les grands écrans 8 pouces de large.) –

Répondre

0

vous pouvez utiliser ceci:

Display display = getWindowManager().getDefaultDisplay(); 
Point sSize = new Point(); 
display.getSize(sSize); 
int width = sSize.x; 
int height = sSize.y; 

vous pouvez aussi l'utiliser pour pouces:

float mXDpi; 
    float mYDpi; 
    DisplayMetrics metrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(metrics); 
    mXDpi = metrics.xdpi; 
    mYDpi = metrics.ydpi; 
    float mMetersToPixelsX = mXDpi/0.0254f; 
    float mMetersToPixelsY = mYDpi/0.0254f; 
+0

Salut, Merci d'avoir pris le temps de répondre à ma question, mais j'essayais d'obtenir la taille de l'écran en pouces, pas en pixels. Y a-t-il un moyen de faire cela????? –

0

Il y a votre réponse: Get screen dimensions in pixels. Ceci cependant, peut ne pas résoudre vos problèmes. Vous devriez vérifier vos vitesses d'animation, parce que je suis assez sûr, que ce n'est pas à cause des différences dans les affichages. Vous devriez poster du code, pour une meilleure aide. J'espère que cela t'aides.

0

Si vous voulez que les dimensions d'affichage en pixels, vous pouvez utiliser getSize:

Display display = getWindowManager().getDefaultDisplay(); 
Point size = new Point(); 
display.getSize(size); 
int width = size.x; 
int height = size.y; 

Si vous n'êtes pas dans une activité que vous pouvez obtenir l'affichage par défaut via WINDOW_SERVICE:

WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE); 
Display display = wm.getDefaultDisplay(); 

Avant l'introduction de getSize (au niveau de l'API 13), vous pouvez utiliser le getWidth et getHeight méthodes qui sont maintenant déconseillés:

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth(); // deprecated 
int height = display.getHeight(); // deprecated 

de Référé: How to get screen dimensions

0
Display display = getWindowManager().getDefaultDisplay(); 

int width = display.getWidth(); 
int height = display.getHeight(); 

OU

Display display = getWindowManager().getDefaultDisplay(); 
Point sSize = new Point(); 
display.getSize(sSize); 
int width = sSize.x; 
int height = sSize.y; 
Questions connexes