我的屏幕尺寸为600(宽)x 1024(高)。我可以正确获取当前的宽度600,但是在未旋转屏幕的情况下错误地获得了976的高度。我可以正确获取当前的高度1024,但是在旋转屏幕的情况下错误地获得了552的高度。
int rowPixelWidth = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getWidth();
int rowWidth = (int)Math.floor(rowPixelWidth / this.getResources().getDisplayMetrics().density);
int rowPixelheight = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getHeight();
int rowheight = (int)Math.floor(rowPixelheight / this.getResources().getDisplayMetrics().density);
Log.d("rowWidth","rowWidth"+rowWidth);
Log.d("rowheight","rowheight"+rowheight);
-------------------------------------------------------------
<uses-sdk
android:minSdkVersion="3"
android:targetSdkVersion="8" />
<supports-screens android:anyDensity="true"/>
-------------------------------------------------------------
这段代码有什么问题?
这里列出了一些典型屏幕宽度的数字: 1. 320dp:一个典型的手机屏幕(240x320 ldpi,320x480 mdpi,480x800 hdpi等)。 2. 480dp:Streak这样的中间平板电脑(480x800 mdpi)。 3. 600dp:7英寸平板电脑(600x1024 mdpi)。 4. 720dp:10英寸平板电脑(720x1280 mdpi,800x1280 mdpi等)。
我可以得到当前的宽度,但不能得到所有设备(没有320x480屏幕)的当前高度。
我尝试使用获取像素的屏幕尺寸的代码,但出现了相同的问题。