Android Nexus 7实际屏幕大小

Android Nexus 7实际屏幕大小,android,mobile,android-emulator,nexus-7,Android,Mobile,Android Emulator,Nexus 7,我为Nexus7构建了一个简单的应用程序。我使用以下代码以DP单位获得屏幕大小 this.getResources().getConfiguration().screenWidthDp; this.getResources().getConfiguration().screenHeightDp; 其中“this”是MainActivity上下文对象 我得到这些值:宽度为600 dp,高度为888 dp 像素密度为tvdpi,为213,dp与像素的比率为1.33 我用了这个公式 pixels =

我为Nexus7构建了一个简单的应用程序。我使用以下代码以DP单位获得屏幕大小

this.getResources().getConfiguration().screenWidthDp;
this.getResources().getConfiguration().screenHeightDp;
其中“this”是MainActivity上下文对象

我得到这些值:宽度为600 dp,高度为888 dp

像素密度为
tvdpi
,为213,dp与像素的比率为1.33

我用了这个公式

pixels = dips * (density / 160) 
这给了我身高

pixels = 888 * (213 / 160) = 1182.15. 
我知道Nexus7屏幕的像素大小是800x1280。此计算中缺失的100像素高度在哪里?还是我做错了什么?

返回屏幕可用区域的尺寸

您的计算值1182接近Nexus 7的像素高度(1173),也就是说,您的应用程序可以使用的分辨率

全屏应用程序应能够使用1280的完整分辨率。

返回屏幕可用区域的尺寸

您的计算值1182接近Nexus 7的像素高度(1173),也就是说,您的应用程序可以使用的分辨率


全屏应用程序应能够使用1280的全分辨率。

以下内容应给出实际显示大小:

    private Point getDisplaySize(Context context) {

    if (Build.VERSION.SDK_INT >= 17) {
        return getDisplaySizeMinSdk17(context);
    } else if (Build.VERSION.SDK_INT >= 13) {
        return getDisplaySizeMinSdk13(context);
    } else {
        return getDisplaySizeMinSdk1(context);
    }
}

@TargetApi(17)
private Point getDisplaySizeMinSdk17(Context context) {
    final WindowManager windowManager = (WindowManager) context
            .getSystemService(Context.WINDOW_SERVICE);
    final Display display = windowManager.getDefaultDisplay();

    final DisplayMetrics metrics = new DisplayMetrics();
    display.getRealMetrics(metrics);

    final Point size = new Point();
    size.x = metrics.widthPixels;
    size.y = metrics.heightPixels;

    return size;
}

@TargetApi(13)
private Point getDisplaySizeMinSdk13(Context context) {

    final WindowManager windowManager = (WindowManager) context
            .getSystemService(Context.WINDOW_SERVICE);
    final Display display = windowManager.getDefaultDisplay();

    final Point size = new Point();
    display.getSize(size);

    return size;
}

@SuppressWarnings("deprecation")
private Point getDisplaySizeMinSdk1(Context context) {

    final WindowManager windowManager = (WindowManager) context
            .getSystemService(Context.WINDOW_SERVICE);
    final Display display = windowManager.getDefaultDisplay();

    final Point size = new Point();
    size.x = display.getWidth();
    size.y = display.getHeight();

    return size;
}

以下内容应给出实际显示尺寸作为一个点:

    private Point getDisplaySize(Context context) {

    if (Build.VERSION.SDK_INT >= 17) {
        return getDisplaySizeMinSdk17(context);
    } else if (Build.VERSION.SDK_INT >= 13) {
        return getDisplaySizeMinSdk13(context);
    } else {
        return getDisplaySizeMinSdk1(context);
    }
}

@TargetApi(17)
private Point getDisplaySizeMinSdk17(Context context) {
    final WindowManager windowManager = (WindowManager) context
            .getSystemService(Context.WINDOW_SERVICE);
    final Display display = windowManager.getDefaultDisplay();

    final DisplayMetrics metrics = new DisplayMetrics();
    display.getRealMetrics(metrics);

    final Point size = new Point();
    size.x = metrics.widthPixels;
    size.y = metrics.heightPixels;

    return size;
}

@TargetApi(13)
private Point getDisplaySizeMinSdk13(Context context) {

    final WindowManager windowManager = (WindowManager) context
            .getSystemService(Context.WINDOW_SERVICE);
    final Display display = windowManager.getDefaultDisplay();

    final Point size = new Point();
    display.getSize(size);

    return size;
}

@SuppressWarnings("deprecation")
private Point getDisplaySizeMinSdk1(Context context) {

    final WindowManager windowManager = (WindowManager) context
            .getSystemService(Context.WINDOW_SERVICE);
    final Display display = windowManager.getDefaultDisplay();

    final Point size = new Point();
    size.x = display.getWidth();
    size.y = display.getHeight();

    return size;
}