获得屏幕高度会返回比物理屏幕可以显示的屏幕更大的屏幕

时间:2011-07-31 12:20:32

标签: java android screen titlebar

当我获得Android应用的屏幕尺寸时,它会返回一个变量,在每种情况下都太大,无法显示屏幕。我使用以下代码来获取屏幕大小。

final int windowHeight = getResources().getDisplayMetrics().heightPixels;
final int windowWidth = getResources().getDisplayMetrics().widthPixels;

有没有办法补偿它?或甚至解决我的问题?

此外,有没有办法在应用程序中关闭电池/时间栏?我想这可能是我遇到麻烦的原因,但我实际上并不知道。这就是我要问的原因。

2 个答案:

答案 0 :(得分:1)

要停用电池/时间栏,我在我的AndroidManifest.xml文件中使用此<application>标记:

<application 
    android:icon="@drawable/icon" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.NoTitleBar" 
    ...
    >


而且,为了获得屏幕的大小,这是我在Activity中的内容:

    Display display = getWindowManager().getDefaultDisplay(); 
    int screenWidth = display.getWidth();
    int screenHeight = display.getHeight();

答案 1 :(得分:0)

请注意,您可能需要密度点而不是像素。 如果您获得以像素为单位的尺寸,那么您将如何转换它们。但你也可以在dp中得到尺寸

        /*  
         * Get dps from pixel.
         */
        float scale = getResources().getDisplayMetrics().density;

        public static float dpFromPixels(int pixels) {
            float dp = (float) (pixels / scale + 0.5f);
            return dp;
        }