针对不同密度优化应用程序导致问题

时间:2013-09-30 16:17:52

标签: android android-layout nine-patch

我正在开发一个学校项目的应用程序,我已经完成了它。剩下要做的就是针对不同的屏幕优化应用程序。通过开发,我一直只在一台设备上测试应用程序 - 三星Galaxy Nexus(我的手机)。

我在photoshop中制作的每个布局元素最初都是为我的手机创建的,因此该应用在三星Galaxy Nexus上运行时效果最佳。所以我做了一些研究,偶然发现了this网站。我的手机(三星Galaxy Nexus)有xhdpi密度,所以我的逻辑告诉我,我制作的布局元素是xhdpi,但我将它们保存在手动制作的“drawable”文件夹中。 Drawable-hdpi,drawable-xhdpi等文件夹一直都是空的。

现在我使用this工具为其他密度创建所有布局元素。然后我删除了drawable文件夹并将布局元素放在所有四个密度文件夹中:

  

抽拉-HDPI

     

抽拉-LDPI

     

抽拉-MDPI

     

抽拉-xhdpi

所以drawable-xhdpi现在包含原始布局元素,其余文件夹包含新制作的布局元素。但是,现在当我在手机上运行应用程序时,布局被破坏了 - >一切看起来都小得多。所以我猜我的手机从drawable-xhdpi以外的其他地方加载布局元素。这是为什么?这个网站是不对的,毕竟我的手机不是xhdpi,或者我做错了什么?

2 个答案:

答案 0 :(得分:2)

当你将它们放在基础drawable文件夹中时,系统假定它们实际上是mdpi资源并将它们扩展到两倍大。所以,既然你在drawable-xhdpi中拥有相同的图像,那么它就不会缩放它们。

基本上,您需要将图像缩放至2倍,然后再次通过该工具运行它们。在使用该工具之前,您可能需要对它们进行一些美化,因为放大通常很难看。

答案 1 :(得分:-1)

花一点时间浏览Android开发者的thisthis文档。在为Android应用程序创建drawable时,基本大小为mdpi,密度比为1,则xhdpi,hdpi和ldpi的密度分别为2,1.5,0.75。