2012-08-08 13 views
6

Help.I znalazłem wysokość ListView i nie wiem px lub dpi? Potrzebuję dpigetheight() px lub dpi?

final ListView actualListView = mPullRefreshListView.getRefreshableView(); 

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

        } 
       }); 
+0

getHeight(); zawsze zwracaj wysokość w pikselach, sprawdź to rozwiązanie. http://stackoverflow.com/questions/3166501/getting-the-screen-density-programmically-in-android –

+1

Po prostu sidenote na przyszłość. To, czego potrzebujesz, to prawdopodobnie 'dp' lub' dip' - oznaczają one * niezależne od gęstości piksele *. "dpi" to * punkty na cal * i mierzy gęstość ekranu, a nie wymiary. –

Odpowiedz

26

getheight powrócić wysokość w pikselach, Poniżej jest to, co mówi docs ..

public final int getHeight() 

Od: Poziom API 1

Zwróć wysokość swojego widoku. Zwroty

Wysokość Twojego widoku w pikselach.

Musisz przekonwertować px na dp, użyj poniższych sposobów, aby przekonwertować go do dp.

Konwersja pikseli do dp:

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

lub jeśli chcesz je px użycia poniżej.

Konwersja dp do piksela:

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

Używając tego kodu można uzyskać runtime wyświetlacza Szerokość & Wysokość

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

czy mógłbyś powiedzieć mi rozdzielczość (w dpi) na wysokości 458 px? –

+0

sprawdź ten dla odpowiedzi Odpowiedź http://coh.io/adpi/ –

Powiązane problemy