错误的宽度像素?

Kar*_*arl 6 android pixel

    DisplayMetrics displaymetrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);

    int w = displaymetrics.widthPixels;
    int h = displaymetrics.heightPixels;
Run Code Online (Sandbox Code Playgroud)

我正在使用"Nexus One"

W应该是480而H应该是800 ......

但对我来说W是320而H是533 ......

我究竟做错了什么???

        DisplayMetrics displayMetrics = new DisplayMetrics();
    this.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);

    float CAMERA_WIDTH = displayMetrics.widthPixels
            * getResources().getDisplayMetrics().density;
    ;
    float CAMERA_HEIGHT = displayMetrics.heightPixels
            * getResources().getDisplayMetrics().density;
    ;

    Log.v("" + CAMERA_WIDTH + "---"
            + CAMERA_HEIGHT);
Run Code Online (Sandbox Code Playgroud)

VERBOSE:320.0 --- 533.0

Kar*_*arl 7

需要一个

    <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="10" />
Run Code Online (Sandbox Code Playgroud)


Wil*_*ate 2

卡尔,你必须考虑屏幕密度。您需要将每个值乘以...

density = getResources().getDisplayMetrics().density;
int w = displaymetrics.widthPixels * density;
int h = displaymetrics.heightPixels * density;
Run Code Online (Sandbox Code Playgroud)

这将为您提供实际的屏幕尺寸