0

我在 480 x 850 像素的 3.6" 屏幕上测试我的应用程序。它工作正常,所有图像都显示出来。

我部署了它,并收到一位朋友的电子邮件,说大约 20% 的应用程序从底部被削减。她使用的是 3.7 英寸 320 x 480 像素的屏幕。

有解决办法吗?我认为Android会按比例拉伸一切。

我只在我的应用程序中使用 hdpi 文件夹。

4

3 回答 3

2

您必须使用 mdpi、hdpi 和 ldpi 文件夹来保存图像。Android 应用程序将其自身作为分辨率,因此请使用其中三个,如果您想在所有设备上支持您的应用程序,您还应该使用 layout/large,layout/中,布局/xlarge,布局/小。

有关更多信息,请参阅链接

为此,您还必须在清单文件中进行一些更改,例如

 <supports-screens android:resizeable=["true"| "false"]
                      android:smallScreens=["true" | "false"]
                      android:normalScreens=["true" | "false"]
                      android:largeScreens=["true" | "false"]
                      android:xlargeScreens=["true" | "false"]
                      android:anyDensity=["true" | "false"]
                      android:requiresSmallestWidthDp="integer"
                      android:compatibleWidthLimitDp="integer"
                      android:largestWidthLimitDp="integer"/>

为此,请参阅链接

于 2013-07-25T18:01:22.423 回答
1

Android 不会拉伸实际屏幕。它会在某些情况下拉伸图像,但这听起来不像是你的问题。

首先,我强烈建议您至少为 mdpi、hdpi 和 xhdpi 获取适当尺寸的图像。mdpi是用标准的72分辨率画出来的,然后比较hdpi是1.5X mdpi,xhdpi是2.0X mdpi。

其次,如果您正确地对屏幕组件进行编程,您将使用密度独立像素(dip 或 dp),并且文本的大小使用 sp。这意味着无论您使用什么尺寸的屏幕,都会显示相同的尺寸。所以没有发生缩放,而是 Android 保持相同的缩放(这非常好)。这意味着在某些屏幕上,您的应用程序将显示在整个屏幕上,而在其他较小屏幕的设备上,它只能显示您屏幕的一部分。这听起来像是正在发生的事情。您需要能够滚动内容,因此在您的主布局文件中,将子项作为 ScrollView。这是处理您的问题的正确方法。

编辑:您可以按照我看到的其他 2 张海报所说的方式来解决这个问题,就像说您支持任何密度以便屏幕缩放一样,但这不是正确的做事方式。你希望你的内容是可滚动的,以免你在小屏幕上看到非常小的不可读的文本,或者在大屏幕上看到巨大的笨拙文本。无论显示在什么设备上,您都希望您的内容在物理空间中的大小相同,这就是 Android 使用 dp 的原因。

Edit2:您可以设计屏幕,将屏幕的百分比分配给不同的组件。在 Android 中执行此操作的方式是使用 LinearLayout。线性布局具有权重总和属性。如果将权重总和设置为 100,则可以将孩子的权重设置为您希望它占据屏幕的百分比。因此,如果你想给底部视图 20% 的屏幕,在具有垂直方向的 LinearLayout 中,你可以将第一个视图的权重设置为 80(占据屏幕的 80%),底部设置为 20。有意义?

于 2013-07-25T18:06:22.960 回答
1
<supports-screens android:smallScreens="true" 
          android:normalScreens="true" 
          android:largeScreens="true"
          android:xlargeScreens="true"
          android:anyDensity="true" />

将此添加到您的应用清单文件中。

于 2013-07-25T18:00:13.453 回答