Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 平板电脑-获得可绘制屏幕分辨率,而不是总屏幕分辨率_Java_Android_Android Canvas_Tablet_Screen Resolution - Fatal编程技术网

Java 平板电脑-获得可绘制屏幕分辨率,而不是总屏幕分辨率

Java 平板电脑-获得可绘制屏幕分辨率,而不是总屏幕分辨率,java,android,android-canvas,tablet,screen-resolution,Java,Android,Android Canvas,Tablet,Screen Resolution,平板电脑和一些运行4.0的手机都有屏幕控制。我正在开发一款基于画布的全屏游戏。我调整画布以适应矩阵的屏幕大小 在任何有屏幕按钮的设备上,我的应用程序当前会在这些按钮下绘制游戏控件的一部分 有没有办法确定可绘制屏幕的分辨率,即分辨率减去屏幕上的任何按钮 编辑: 这就是我测试分辨率的方法 Display display = ((Activity) gameContext).getWindowManager().getDefaultDisplay(); Log.d("Display.getWidt

平板电脑和一些运行4.0的手机都有屏幕控制。我正在开发一款基于画布的全屏游戏。我调整画布以适应矩阵的屏幕大小

在任何有屏幕按钮的设备上,我的应用程序当前会在这些按钮下绘制游戏控件的一部分

有没有办法确定可绘制屏幕的分辨率,即分辨率减去屏幕上的任何按钮

编辑:

这就是我测试分辨率的方法

Display display = ((Activity) gameContext).getWindowManager().getDefaultDisplay(); 

Log.d("Display.getWidth(): ", Integer.toString(display.getWidth()));
Log.d("Display.getHeight(): ", Integer.toString(display.getHeight()));

DisplayMetrics metrics = new DisplayMetrics();
((Activity) gameContext).getWindowManager().getDefaultDisplay().getMetrics(metrics);

Log.d("Metrics.getWidth(): ", Integer.toString(metrics.widthPixels));
Log.d("Metrics.getHeight(): ", Integer.toString(metrics.heightPixels));

使用Android类。它返回的数据是应用程序可使用的区域,不包括屏幕上的控件等。

现在我使用的是:Display Display=Activity context.getWindowManager.getDefaultDisplay;然后是display.getWidth和display.getHeight您提供的内容的文档看起来返回了相同的信息。它没有提到操作栏,这些都是正确的值。事实上,您会发现,与直觉相反,获取全屏大小以使硬件像素数与查询结果中的像素数匹配有点困难。你想要的东西很简单。在emulator display.XXX上使用3.2进行测试非常有效。但是,在3.0上,度量和显示对象都返回相同的信息。我已经把我使用的实际逻辑放在上面了。是的。这是预期的行为。在横向方向的1280x800平板电脑上,这两个参数都应该输出1280x720左右的值,这说明了屏幕上的控件。这是你的应用程序可以占用的区域,这是你要求的。但这似乎并不能解决问题。在3.2上,我得到的分辨率允许我调整游戏以适应可用区域。在3.0上,分辨率是整个屏幕的分辨率,因此我的游戏位于底部栏下。