2012-08-08 12 views
6

Hilfe.Ich habe die Höhe von ListView gefunden und weiß weder px noch dpi? Ich brauche dpigetheight() px oder dpi?

final ListView actualListView = mPullRefreshListView.getRefreshableView(); 

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

        } 
       }); 
+0

getHeight() erhalten; geben Sie die Höhe immer in Pixel an, überprüfen Sie diese Lösung für Sie. http://stackoverflow.com/questions/3166501/getting-the-screen-density-programmatic-in-android –

+1

Nur eine Randnotiz für die Zukunft. Was Sie brauchen, ist wahrscheinlich 'dp' oder' dip' - sie stehen für * dichte unabhängige Pixel *. "dpi" ist * Punkte pro Zoll * und es misst die Dichte des Bildschirms, nicht die Abmessungen. –

Antwort

26

getHeight Höhe Rückkehr in Pixel, Unten ist das, was docs sagt ..

public final int getHeight() 

dpi Seit: API Level 1

Geben Sie die Höhe Ihrer Ansicht zurück. Rückgabe

Die Höhe Ihrer Ansicht in Pixeln.

Sie benötigen px in dp zu konvertieren, unterhalb der Weisen verwenden, um es zu dp zu konvertieren.

Convert Pixel zu dp:

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

oder, wenn Sie es in px Nutzung interessiert.

Convert dp Pixel:

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

diesen Code können Sie in Runtime-Anzeige der Breite & Höhe

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

können Sie mir bitte Auflösung (in dpi) für Höhen von 458 px sagen? –

+0

Überprüfen Sie diese für Ihre Antwort http://coh.io/adpi/ –