6

Android デバイスの画面サイズを取得したい。これを行うためにこれらの 3 つのコードを使用していますが、これらはアクティビティのサイズを示しています。ステータスバーの高さのサイズはありません。高さが 800px のタブレットでは、このコードは 764px になります。36px は下部のステータス バーに移動します。

    Display display = getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    final int width = size.x;
    final int height = size.y;



    Rect rectgle= new Rect();   
    Window window= getWindow();
    window.getDecorView().getWindowVisibleDisplayFrame(rectgle);
    int height2= rectgle.bottom;



    DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    int actualHeight = metrics.heightPixels;

しかし、画面の実際のサイズを示すコードが必要です 。 活動のものではありません。誰でもこれについて私を助けることができますか? ありがとうございました。

4

2 に答える 2

5

API レベル 17 以降では、使用できますgetRealSize()

https://developer.android.com/reference/android/view/Display.html#getRealSize(android.graphics.Point)

于 2013-08-25T14:58:29.747 に答える
3

このスニペットは、ステータス バーの高さを示します。

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;

したがって、画面の全高は次のとおりです:-

height = height+TitleBarHeight;

元の回答はこちらです。また、これはonCreateでは機能しないことに注意してください。そのコードを実行可能にします。

于 2013-08-25T14:09:31.457 に答える