我正在尝试让我的android应用程序在手机类型的设备和平板电脑上都能工作。对于布局,我有layout-normal和layout-large,我将xml文件放在每个布局中,它似乎为每个设备选择了正确的布局(layout-normal适用于手机,layout-large适用于平板电脑)。
然而,对于可绘制的文件夹,问题就出现了。我有drawable-hdpi,drawable-mdpi和drawable-ldpi。平板电脑从drawable-mdpi获取图像,手机从drawable-hdpi获取图像。从我一直在做的阅读来看,这似乎是倒退的?这似乎在模拟器和真实设备上都会发生,我是不是做错了什么?我是不是把什么搞混了?
发布于 2011-11-02 13:06:05
克莱顿
drawable-hdpi和drawable-mdpi与屏幕本身的大小无关,而是与显示器的分辨率有关。
从iPhone 3GS和4的角度来看,这可能很容易(请耐心听我说)。4有视网膜显示,因此分辨率更高。使用与3GS相同的精灵将导致显示模糊。
如果说有什么不同的话,那就是Android手机在屏幕选择方面要多样化得多。
如果您希望能够针对不同的分辨率设置不同的布局,请尝试将布局放入/layout-xlarge、/layout-large等……
你可以在这里找到更多:
http://developer.android.com/guide/practices/screens_support.html
在Android 3.2和更高版本中,你可以看到一些变化:
从Android3.2(API13级)开始,上述大小组已被弃用,您应该使用swdp配置限定符来定义您的布局资源所需的最小可用宽度。例如,如果您的多窗格tablet布局需要至少600dp的屏幕宽度,则应将其放置在layout-sw600dp/中。使用声明布局资源的新技术将在关于声明Android3.2.
的平板电脑布局一节中进一步讨论。
发布于 2011-11-02 13:04:00
ldpi、mdpi和hdpi是指像素密度,而不是屏幕尺寸。
发布于 2011-12-13 20:08:56
公认的答案并没有解决一个严重的问题:如果您有许多可绘制文件,由于资源复制,您最终会得到一个不必要的大apk文件。唯一的解决方案是这里描述的资源别名选项:http://blog.evendanan.net/2011/03/Android-resources-and-device-fragmentation
mdpi编辑:我只是注意到OP没有意识到大多数手机都有hdpi密度,而大多数平板电脑都有mdpi密度。与此同时,平板电脑大多具有更高的分辨率。因此,Android将使用更小的图片来获得更高的分辨率。您只能通过使用矢量图像或使用接受答案和我的答案中描述的方法来克服这一点。
https://stackoverflow.com/questions/7975981
复制相似问题