簡體   English   中英

android獲取縱向和橫向的高度和寬度

[英]android get available height and width for portrait and landscape

所以我在我的活動中寫了以下方法:

private void setDisplayMetrics(){

    DisplayMetrics metrics = this.getResources().getDisplayMetrics();
    int dh       = metrics.heightPixels;
    int dw       = metrics.widthPixels;

    if(dw < dh){
        deviceWidth  = dw;
        deviceHeight = dh;
    }else{
        deviceWidth  = dh;
        deviceHeight = dw;
    }

    System.err.println("--------------> dh : "+deviceHeight+" | dw "+deviceWidth);

}

它的效果非常好,從某種意義上說,它可以讓我獲得屏幕的總寬度和高度,具有極高的准確性和可靠性(這就是我要求它做的事情)。

這是問題所在。 在較舊的Android設備上,屏幕尺寸與應用程序可以占用的尺寸相同,上面的腳本可以幫助我設置應用程序中元素的大小。 但是使用android ICS我在屏幕底部有這個圖形按鈕欄,它會影響我的整個策略。

在此輸入圖像描述

我真正想要的是能夠在一種方法中同時獲得縱向視圖和橫向視圖的可用應用維度。 無論上圖所示的條形圖如何,這些尺寸都是准確的。

有誰知道如何實現這一目標?

Rect rectgle= new Rect();
Window window= getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(rectgle);
int StatusBarHeight= rectgle.top;
int contentViewTop= 
    window.findViewById(Window.ID_ANDROID_CONTENT).getTop();
int TitleBarHeight= contentViewTop - StatusBarHeight;

   Log.i("*** Jorgesys :: ", "StatusBar Height= " + StatusBarHeight + " , TitleBar Height = " + TitleBarHeight); 

從我到目前為止所讀到的,你無法直接得到這個高度。 通過getWindowVisibleDisplayFrame()的方法似乎不起作用。 到目前為止,我發現的唯一有希望的解決方案是使用自定義布局來測量屏幕大小,如http://evgeni-shafran.blogspot.de/2011/01/android-screen-size-problem.html中所述 我相信這會起作用,但對我來說似乎比它值得更麻煩。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM