2017-09-27 25 views
1

嗨我是新的Android开发,这是我的第一个应用程序。应用程序的用户界面不适合在220 dpi的屏幕

我已经在地址:app \ src \ main \ res中创建了这些文件夹,用于支持多个手机和平板电脑屏幕并在其中放置适当的dimens.xml文件。

  • 值-LDPI
  • 值-MDPI
  • 值-HDPI
  • 值-xhdpi
  • 值-xxhdpi
  • 值-xxxhdpi
  • 值-sw600dp
  • 值 - sw768dp
  • values- sw800dp

    1. 首先,它们是完整的还是我缺少一些屏幕尺寸?

    2. 第二,我已经测试了几款设备上的应用程序,它的工作正常,并且在所有手机上都有适当的用户界面,但Galaxy Grand Prime拥有5英寸540 x 960像素显示屏,意味着220 dpi。这款手机使用hdpi尺寸但UI有点混乱。

下面的图片可以让我好点:

proper UI , as it is shown in other devices

适当的UI,因为它是在其他设备

显示VS

UI in galaxy grand prime 220 dpi display

012在星系宏伟黄金220 dpi的显示器

UI

的UI在其他设备完全OK,我想我应该为那种dpi的具体dimens.xml文件,所以我做了价值观sw220dp。但在此之后,其他手机使用这个维度而不是hdpi维度,问题变得更糟,因为用户界面在星系手机中很好,并且在其他hdpi显示中不合适。现在我不知道该怎么办。

任何人都可以帮助我解决这个问题吗?

最后对不起,因为我的英语有缺陷,因为你可以猜到我不是本地人。

+1

你混合两种o f资源选择器:mdpi,ldpi等基于dpi桶,但sw600dp表示“最小屏幕宽度为600dp的设备”所有手机的屏幕最小侧大于220dp。 –

+0

我对平板电脑做了这个,所以我应该怎么做才能支持平板电脑屏幕? –

+0

我删除了sw600dp,sw768dp和sw800dp xmls,但它仍然不适用于上述设备 –

回答

1

它们是完整的还是我缺少一些屏幕尺寸?

如果您阅读我在回答结尾处提到的指南,您会发现定义资源文件夹的可能性非常多。我认为没有人会想要实施所有这些。

通常你看看你的应用程序,然后决定你想要支持的三到四种屏幕尺寸。我认为“sw220dp”很重要,如果只是为了显示一条消息,说明你的应用需要更多空间:-)。

所以可能有三到五个布局文件夹(sw220dp,sw320dp,也许sw480dp,sw600dp,也许sw820dp)。如果你需要与方向有关的布局,那么这个数字将会是那么多。 (为什么?在下面的指南中解释得非常好)

您已经知道有不同类型的资源。其中一些不依赖于屏幕分辨率(例如布局文件),有些可以(可绘制资源)。

因此,首先您决定要支持哪些屏幕尺寸。假设他们是“电话”,“平板电脑”和“220dp”。您可以通过同一个名字“my_activity.xml”创建三个布局文件并把它们放在三个文件夹

  • 为真正的小窗口:RES /布局sw220dp
  • 为移动电话:RES /布局sw320dp
  • 为片剂:RES /布局sw600dp

顺便提一句, “SW” 表示最小宽度这是屏幕的最小长度,无论目前的方向如何。

现在让我们假设你已经创建了三个不同的布局文件和所有的人都包含一个ImageView这样的:

<ImageView 
    android:layout_width="24dp" 
    android:layout_height="24dp" 
    android:src="@drawable/my_picture" /> 

这就是屏幕分辨率进场:24dp是一个大小值“密度 - 独立像素“。这将根据设备的屏幕分辨率来解决。所以你需要不同版本的my_picture.png,为此你需要不同的drawables文件夹。他们是如此运行时知道不同类别的屏幕分辨率命名的PNG文件以选取其中:

  • RES /绘制/ LDPI(虽然我读的地方,你可以跳过,因为图片将被缩小HDPI很好)
  • RES /抽拉-MDPI(或等价RES /抽拉
  • RES /抽拉-HDPI
  • RES /绘制-xhdpi
  • RES /绘制-xxhdpi
  • RES /绘制-xxxhdpi

帮助链接:

Providing Resources

Supporting Multiple Screens

+0

对不起,我没有得到它很好。首先我没有任何可绘制的应用程序(顺便说一句,我已经知道如何处理它们)。第二,你建议将mdpi,ldpi等类型更改为sw220dp,sw320dp等,并使用不同的布局,而不是不同的维度?那么你提到的5种尺寸足以支持所有屏幕尺寸? –

+0

@Mohsen Hesa​​ri - ** - mdpi **等文件夹是可绘制的,而不是布局文件。关于布局文件:您还可以将具有不同维度值的不同布局文件组合在一起。为了让您的应用在所有屏幕上都看起来很好,它与布局文件中的内容非常相关。这是以最佳方式组合所有这些部分的问题。是的,一个方向的5个屏幕尺寸就足够了(或者从可维护性的角度来看,甚至可能太多)阅读链接指南并开始自己的实验:) – 0X0nosugar

相关问题