2012-08-08 14 views
6

Ayuda. ¿Encontré la altura de ListView y no sé px o dpi? Necesito dpigetheight() px o dpi?

final ListView actualListView = mPullRefreshListView.getRefreshableView(); 

actualListView.getViewTreeObserver().addOnGlobalLayoutListener(
       new ViewTreeObserver.OnGlobalLayoutListener() { 
        public void onGlobalLayout() { 
         height = actualListView.getHeight(); 

        } 
       }); 
+0

getHeight(); siempre devuelva la altura en píxeles, verifique esta solución por usted. http://stackoverflow.com/questions/3166501/getting-the-screen-density-programmatically-in-android –

+1

Solo una nota al margen para el futuro. Lo que necesita es probablemente 'dp' o' dip' - representan * píxeles independientes de densidad *. 'dpi' es * puntos por pulgada * y mide la densidad de la pantalla, no las dimensiones. –

Respuesta

26

getHeight volver altura en píxeles, A continuación se muestra lo que dice docs ..

public final int getHeight() 

Desde: API Nivel 1

Devuelve el alto de la vista. Devuelve

El alto de su vista, en píxeles.

es necesario convertir píxeles en DP, utilice a continuación la manera de convertirlo en DP.

Convertir píxel a dp:

public int pxToDp(int px) { 
    DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics(); 
    int dp = Math.round(px/(displayMetrics.xdpi/DisplayMetrics.DENSITY_DEFAULT)); 
    return dp; 
} 

o si desea que en uso px continuación.

Convertir dp a píxel:

public int dpToPx(int dp) { 
    DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics(); 
    int px = Math.round(dp * (displayMetrics.xdpi/DisplayMetrics.DENSITY_DEFAULT));  
    return px; 
} 
1

Utilizando este código se puede obtener en tiempo de ejecución de pantalla de ancho & Altura

DisplayMetrics displaymetrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); 
int height = displaymetrics.heightPixels; 
int wwidth = displaymetrics.widthPixels; 
+0

¿podría decirme resolución (en dpi) para alturas de 458 px? –

+0

verifique este para su respuesta. Http://coh.io/adpi/ –