大家好,我的手机是480*800分辨率的,
通过如下代码获得的分辨率却是320*533的,
DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        new AlertDialog.Builder(Menu.this).setTitle(dm.widthPixels+" * "+dm.heightPixels)
  .setPositiveButton("OK", new DialogInterface.OnClickListener() {
  public void onClick(DialogInterface dialoginterface, int i) { }
  }).show();在网上查了一些资料,说是在AndroidManifest中增加 <uses-sdk android:minSdkVersion="4"></uses-sdk>即可解决这个问题,可是我增加后,仍然是320*533分辨率。请问大家这是怎么回事?
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".Dreamer"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
          <uses-sdk android:minSdkVersion="4"></uses-sdk>
        </activity>
<activity android:name="Menu"></activity>
</application>

解决方案 »

  1.   

    你算的没有乘以密度,从你的描述看应该是WVGA的480x800的
      

  2.   

    你好,使用 dm.widthPixels+" * "+dm.heightPixels 这个代码 取得的应该就是以像素点为单位的值啊
      

  3.   


    我过去写LCD驱动时也是和你一样,你了解下深入了解下dpi吧
      

  4.   

    /*获取屏幕分辨率*/
    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    int widthPixels= dm.widthPixels;
    int heightPixels= dm.heightPixels;
    float density = dm.density; //320*480时为1.0,480*800时为1.5
    float screenWidth = widthPixels * density ;
    float screenHeight = heightPixels * density ;
    Log.i("this screen width is-----", String.valueOf(screenWidth));
    Log.i("this screen high is-----", String.valueOf(screenHeight));
    这样就能得出来了
      

  5.   

    <uses-sdk android:minSdkVersion="4"></uses-sdk>
    要写在application这个节点之外