【问题标题】:Resolution trouble解决问题
【发布时间】:2012-10-16 15:54:56
【问题描述】:

我有一台分辨率为 800*480 的设备。 我创建“Hello word”应用程序。然后我在 MainActivity 的 onCreate 中得到 DisplayMetrics。

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
Log.d("Resolution", "resolution: " + metrics.widthPixels + " x " + metrics.heightPixels);

在 DisplayMetrics 中有 533*320 像素。为什么?

如何申请分辨率为800*480像素。

【问题讨论】:

    标签: android


    【解决方案1】:

    这是因为您正在阅读 device independent pixels 而不是 real pixels。这些dip 等于mdpi 分辨率。因此,尽管实际屏幕尺寸,您应该检查它是什么密度mdpihdpixdpi),然后将您的高分辨率资产放在-hdpi 后缀文件夹中(即@ 987654332@ 或 layout-hdpi)。通常你在dp 中设置你的布局(所以每个活动一个布局XML 文件通常就足够了,你应该像往常一样将它们放在通用res/layout 文件夹中)。然后在hdpi 设备上放置高分辨率可绘制对象,让应用看起来更漂亮

    请参阅this article 了解像素大小和密度关系...

    【讨论】:

    • density 是 1.0,我把 main.xls 放在 layout-hdpi 中,但还是一样。
    • 1.0 是基本密度,意思是-mdpi,这意味着你不能做太多事情。请参阅:developer.android.com/guide/topics/resources/… 如果目标低于 API 13。如果 API 13 没问题,请参阅屏幕大小资源选择器。但我会这样做 - 如果电话说它是 mdpi 而不是 hdpi 与它一起生活。也可以在这里查看:developer.android.com/guide/practices/… 获取像素大小与密度信息...
    • 好的...我应该为不同的分辨率(ldpi、mdpi、hdpi)制作不同的layoutsgraphics?系统如何为我的应用程序选择分辨率?为什么不是 hdpi?
    • 通常不会,通常只有一个布局文件就可以了(您通常不需要任何真实屏幕像素精度,因此无论密度如何,Android 都会正确处理您的布局)。在开始时添加-mdpi(至少)和-hdpi 图形资源也应该足够了。
    • 我制作了layout-mdpi, layout-hdpi... 有两种不同的布局。制作drawable-mdpi, drawable-hdpi... 以不同的分辨率放置PNG。现在在应用程序中,我看到mdpi 中的所有图像,但其中一个是hdpi。不明白...
    猜你喜欢
    • 2018-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 2010-10-13
    • 2011-07-20
    相关资源
    最近更新 更多