2012-08-08 25 views
6

Help.I tìm thấy chiều cao của ListView và tôi không biết px hoặc dpi? Tôi cần dpigetheight() px hoặc dpi?

final ListView actualListView = mPullRefreshListView.getRefreshableView(); 

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

        } 
       }); 
+0

getHeight(); luôn trả về chiều cao tính bằng pixel, hãy kiểm tra giải pháp này cho bạn. http://stackoverflow.com/questions/3166501/getting-the-screen-density-programmatically-in-android –

+1

Chỉ cần một sidenote cho tương lai. Những gì bạn cần có lẽ là 'dp' hoặc' dip' - chúng phù hợp với * mật độ pixel độc lập *. 'dpi' là * dấu chấm trên mỗi inch * và nó đo mật độ của màn hình chứ không phải kích thước. –

Trả lời

26

getheight trở lại chiều cao tính bằng pixel, Dưới đây là những gì tài liệu nói ..

public final int getHeight() 

Vì: API Cấp 1

Trả lại chiều cao của chế độ xem của bạn. Trả lại

Chiều cao của chế độ xem, tính bằng pixel.

Bạn cần chuyển px sang dp, sử dụng các cách dưới đây để chuyển đổi thành dp.

Chuyển đổi pixel để dp:

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

hoặc nếu bạn muốn nó được sử dụng px dưới đây.

Chuyển đổi dp để điểm ảnh:

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

Sử dụng mã này bạn có thể nhận rộng runtime hiển thị của & Chiều cao

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

bạn có thể cho tôi biết độ phân giải (trong dpi) cho độ cao 458 px không? –

+0

kiểm tra này cho u r Trả lời http://coh.io/adpi/ –