- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我试过这个......
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int fullscreenheight = metrics.heightPixels;
int fullscreenwidth = metrics.widthPixels;
和....
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
Gnex 的显示屏为 720×1280。返回的宽度/高度结果(当然取决于方向)永远不会是 1280。我认为这可能与 Ice Cream Sandwich 中的屏幕导航栏有关,所以我将其隐藏:
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
...然后启动一个线程,该线程连续记录屏幕尺寸高度/宽度。即使在 ICS 导航栏完全消失之后....屏幕尺寸也永远不会报告 1280 的值。我会得到这样的数字:
width = 720
height = 1184
如何在 ICS 中获得真正的设备屏幕分辨率?
我需要这个值的原因是因为我的应用程序播放视频,并且我希望视频在设备处于横向时占据整个屏幕。现在我知道你在想什么,为什么不给视频 View 一个高度/宽度的“match_parent”值呢?原因是我的视频有多种纵横比,我希望能够根据屏幕的整个宽度计算出正确的视频尺寸。
最佳答案
根据 Ahmed 的回答,这是没有错误的完整代码:
int width = 0, height = 0;
final DisplayMetrics metrics = new DisplayMetrics();
Display display = getWindowManager().getDefaultDisplay();
Method mGetRawH = null, mGetRawW = null;
try {
// For JellyBean 4.2 (API 17) and onward
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) {
display.getRealMetrics(metrics);
width = metrics.widthPixels;
height = metrics.heightPixels;
} else {
mGetRawH = Display.class.getMethod("getRawHeight");
mGetRawW = Display.class.getMethod("getRawWidth");
try {
width = (Integer) mGetRawW.invoke(display);
height = (Integer) mGetRawH.invoke(display);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} catch (NoSuchMethodException e3) {
e3.printStackTrace();
}
关于Android DisplayMetrics 在 ICS 上返回错误的屏幕尺寸(以像素为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10991194/
我想了解 DisplayMetrics.DENSITY_DEVICE_STABLE Android 上的属性。 来自 Android 10 兼容性定义(和 Android 7 兼容性定义): [C-0
有没有人注意到这个问题并解决了在两个方向上获得一致的绝对显示尺寸的方法? 示例,Nexus 5 (5.0.1): 纵向:宽度 = 1080 高度 = 1776 横向:宽度 = 1794 高度 = 10
我正在开发一个自定义类,以帮助调整其他类的布局大小。 这是类 public class LayoutResize{ Context context; DisplayMetrics di
我正在尝试访问一些 DisplayMetrics 数据,但一切都返回零。这就是我初始化显示指标对象的方式: DisplayMetrics display = new DisplayMetrics();
我想获取设备屏幕的 dpi,但是当我使用时: DisplayMetrics m = getResources().getDisplayMetrics();
我有两种不同的平板电脑: 10.1 英寸平板电脑 - 1280x800 @ ~149dpi 15.6 英寸平板电脑 - 1920x1080 @ ~156dpi 就实际物理(现实世界)规范而言,这些平板
我有一个 Samsung Galaxy S4 Active 当我在Android上执行时,如下代码: DisplayMetrics dm = new DisplayMetrics(); getWind
在 Debug模式下, metrics.xdpi 和 .ydpi 都返回 160。但是,我有一部 5"1920x1080 手机。我做错了什么? DisplayMetrics metrics =
我正在开发一个 Android 游戏(在 libgdx 中),但有一个问题:我需要获取设备的 dpi 以获得更好的游戏体验。所以我尝试使用 DisplayMetrics。 DisplayMetrics
小问题 DisplayMetrics.densityDpi 在 root 设备上似乎为零。 长题 我在我的应用中使用了以下代码: public static int getIconSize(Activ
我使用 displaymetrics 来获取设备的屏幕尺寸。在智能手机中效果很好,但在平板电脑中它返回屏幕宽度和高度的 2/3。谁能告诉我这是为什么? 这是代码: DisplayMetrics met
第一种方法: DisplayMetrics displayMetrics = this.getResources().getDisplayMetrics(); int deviceHeight = d
我有一个自定义 View ,我正在尝试针对不同的屏幕尺寸进行测试,但我无法找到有关如何在单元测试中正确模拟显示宽度的文档或示例。 这是我如何尝试使用它的示例: private CustomTextVi
我刚开始使用 Android 编程,但在以下代码中收到错误: DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefau
我想了解 Android 中的 sp 单元,但我无法真正弄清楚它是如何工作的。 documentation说: sp Scale-independent Pixels - This is like t
获取 DisplayMetrics 的正确方法是什么,即获取屏幕/显示信息,例如 density 或 xdpi? 我问是因为我看到了两种解决方法: 第一: DisplayMetrics met
我试过这个...... DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().ge
我正在设计我的第一个 Android 应用程序,其中一部分需要获取屏幕尺寸。我以标准方式使用 DisplayMetrics 对象: DisplayMetrics metrics = new Displ
编辑 2 编辑 覆盖 attachBaseContext 方法以更新 Activity 中的上下文 protected override void AttachBaseContext(Context
我需要在 Android AppWidget 中确定运行时的屏幕密度。我已经设置了一个 HDPI 模拟器设备 (avd)。如果设置一个常规的可执行项目,并将此代码插入到 onCreate 方法中: D
我是一名优秀的程序员,十分优秀!