【问题标题】:Android - Screen Resolution and Screen DensityAndroid - 屏幕分辨率和屏幕密度
【发布时间】:2010-09-27 14:00:38
【问题描述】:

根据Android 1.6版本管理资源(图片),我们需要在Drawable-Hdpi、Drawable-Mdpi、Drawable-Lpi文件夹中保存不同分辨率的图片。

根据这个页面:http://developer.android.com/guide/practices/screens_support.html

在低密度部分 - 使用了三种分辨率:240*320、240x400、240x432 用于小屏幕、普通屏幕、特别是大屏幕。

中等密度部分的方法相同 - 使用了三种分辨率:320x480、480x800、480x854 用于小屏幕、普通屏幕、特别是大屏幕。

高密度也是一样的......

但我在这里很困惑:

(1) 怎么知道是小屏、普通屏还是大屏,有什么办法知道吗?

(2) 我如何知道我正在使用哪种类型的密度?

(3)在Drawable-Hdpi、Drawable-Mdpi、Drawable-ldpi文件夹中,我们应该特别保留哪个分辨率的图片?

请分享你的知识。

【问题讨论】:

    标签: android android-screen android-resolution


    【解决方案1】:

    有特定的 Android API 调用可以在运行时告诉您手机的密度和(小/大/正常)屏幕尺寸。但是,作为开发人员,我们根本不需要担心个别手机。我们需要做的就是在 apk 中有 ldpi/mdpi/hdpi 资产和小/正常/大布局。 Android 内部处理一切。

    不要忘记深入了解 Android 如何确定要使用的资产和别名 here

    【讨论】:

    • 我将我的放在 Xhpdi 中,但它们并不总是可以扩展,有些可以,有些不能。所以我认为放入不同的文件夹是首选,特别是如果你正在制作一个大型应用程序以最大限度地提高性能和用户体验。没有?
    • 同意,也不要忘记尽可能使用 9 个补丁图像。他们帮助很大。
    【解决方案2】:

    为什么要知道实际密度?这是安卓的事。但我确信有办法检索这些信息。

    为了开发,我将所有内容都放在 hdpi 文件夹中。我也可以把所有东西都放在一个通用的可绘制文件夹中。

    在您发布时,您可以决定是否要为 ldpi 和 mdpi 提供已经缩减的资源。但是,这不是必需的。

    更新: Retrieve actual density with this classbest practices

    更新 2: 我找到了一段来自摩托罗拉的 25 分钟视频,讨论了所有这些问题:Working with multiple screens

    【讨论】:

    • 如果你把所有东西都放在hdpi文件夹里,每个分辨率都可以吗?图像会被拉伸/裁剪吗?
    • 是的,没关系。它们将被放大或缩小。如果你想在 imageViews 中使用 scale_type,你也可以设置一定的拉伸/裁剪行为。您还应该始终使用 dp- 和 sp-Dimensions,那么您就没事了。您还可以在 SDK 的预览版和 VM 中测试不同的屏幕尺寸。
    • 感谢此类信息,我已经在使用 scale_type 进行 imageview 并使用 dip(dp) 或 sp 设置尺寸
    • 如果您动态检索资源,例如从 Web 服务器,您可能希望为当前分辨率请求最佳资源。
    【解决方案3】:

    1) 更改不同文件夹中布局的内容,即layout-small、layout-large等现在在不同屏幕分辨率的不同模拟器中测试。

    2) 用于查找设备的密度使用
    Log.d("Density", "" + (getResources().getDisplayMetrics().density));

    【讨论】:

    • 对了,这个问题一年前就已经被问及回答了
    猜你喜欢
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多