Android 理解屏幕尺寸

标签 android

我有一个屏幕分辨率为 720X1280、密度为 320dpi 的模拟器。

现在,当我使用以下代码找出 dpheight、dpwidth 和密度时

    Display display = getWindowManager().getDefaultDisplay();
    DisplayMetrics outMetrics = new DisplayMetrics();
    display.getMetrics(outMetrics);

    float density  = getResources().getDisplayMetrics().density;
    float dpHeight = outMetrics.heightPixels / density;
    float dpWidth  = outMetrics.widthPixels / density;

我得到以下值:

06-24 06:47:46.027 D/Density ( 1003): 2.0
06-24 06:47:46.027 D/DPHeight( 1003): 592.0
06-24 06:47:46.027 D/DPWidth ( 1003): 360.0

我听不懂。有人可以给它遮光吗?
我打算开发一个包含大量文本的应用程序,并且我想适本地设置文本大小以使其看起来一致。

是的,我已经阅读了有关此的 Google 文档。
但我无法理解,因此提出了这个问题。

最佳答案

Density 2.0 是您的 friend 。这是基础 dpi (160 dpi = mdpi) 倍数。事实上:320/160 = 2.0

[编辑]

为清楚起见:

If your emulator is    then the density is    which actually is  

xxxhdpi                4.0                    640 dpi
 xxhdpi                3.0                    480 dpi
  xhdpi                2.0                    320 dpi
   hdpi                1.5                    240 dpi
   mdpi                1.0                    160 dpi
   ldpi                0.75                   120 dpi

关于Android 理解屏幕尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31019785/

相关文章:

java - 为什么Android SDK 中的某些方法接受数组作为参数而不是返回数组?

android - 突出显示 RecyclerView 中的选定项目

android - 在 Android Fragments 中维护返回堆栈

android - 我的android应用程序--GoBang的错误

java - 安卓倒计时不工作

android - 无法在 Android Studio 上更改 API 级别

android - Jetpack 撰写 : How to create a rating bar?

android - 改变 MediaPlayer 的 SurfaceViews

android - ViewPager 在屏幕旋转后重新实例化无序的项目

java - 无法从编辑文本小部件 (android) 获取文本