Ani*_*tel 6 android screen-orientation
我的屏幕尺寸为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"/>
-------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
这段代码出了什么问题?
以下是典型屏幕宽度的一些数字:
我获得当前宽度但没有获得所有设备的当前高度(没有(320x480屏幕).
我尝试以像素为单位获取屏幕尺寸的代码,但同样会出现问题.
我相信getDefaultDisplay唯一会给你一个应用程序将要显示的窗口,它不会考虑其他东西,如顶部的通知栏或底部的Android按钮(主页,后面......)或类似的东西.
这可能就是为什么你会在两种情况下看到垂直尺寸相差48像素的原因.
更多信息
你的代码似乎是正确的,类似于那里的代码.您可能还想使用此答案中的内容来为正确版本的Android使用正确的API.
但无论如何,当你出现时,你将获得的尺寸将不包括带有软Android按钮的导航栏.
当您在HVGA屏幕上运行Android 4.1时,没有导航栏或组合栏(屏幕太小),因此您可以获得整个屏幕的分辨率.
如果您在更大的屏幕上运行相同的版本,您将看到导航栏,您的应用程序可用的显示大小更小,您将只获得该空间的分辨率.
如果您不清楚,请在此处查看导航栏和其他人的定义.
| 归档时间: |
|
| 查看次数: |
2412 次 |
| 最近记录: |