【问题标题】:Supporting small devices支持小型设备
【发布时间】:2011-03-11 05:22:16
【问题描述】:

嘿,我是新来的,正在通过为我的学校制作一个应用作为项目来学习 Android。我遇到了一个问题,它不适用于较小的 QVGA 设备。它在底部被切断。我已阅读有关支持不同屏幕尺寸的官方开发指南,但我猜我并不完全理解发生了什么。

我的代码仅使用相对布局和(dip)单位。

布局在中型 HVGA 手机上看起来很棒,并充分利用了空间。当然,它可以扩展到大屏幕,只需一点额外空间,我的理解是它会变得更小,可以在小型设备上工作。相对于手机屏幕,它看起来不完全相同吗?

以下是 QVGA 和 HVGA 仿真的一些屏幕截图。

注意:低质量/不正确的图像现在只是占位符。 http://i19.photobucket.com/albums/b183/CraZboyz/Mischosting/CDQVGA.jpg

【问题讨论】:

    标签: android


    【解决方案1】:

    一个可能的解决方法是实现一个 ScrollView,因为它似乎并没有问题。它将允许用户在较小的手机上向下滚动,并且不会影响不需要滚动的较大屏幕。

    【讨论】:

    • 嘿,谢谢你的提示。是的,这可能是更好/更简单的修复之一。我想我也只是想知道为什么会这样?为什么不能一切都变得更小并适合屏幕?似乎每个占据整个中等大小屏幕的应用程序都永远无法适应小屏幕。
    • 好吧,这可能有几个原因。一个是按钮默认为某个高度(除非您专门更改它),并且它们不能全部适合小屏幕。看,容纳小屏幕更难,因为一切都必须适合,但它也必须易于管理。您不能真正单击 5 像素高的按钮。这就是为什么我只使用滚动视图。在我看来,不要粗鲁,但人们应该买一部更大屏幕的手机,而不是让我们补偿。 :)
    • 哈哈,是的,我同意,我认为与正常和大型相比,它们中的数量并不多。我实际上确实以(倾角)单位设置了按钮的大小。好吧,非常感谢,这确实更有意义。滚动视图。
    • 很高兴能帮上忙,克里斯。
    【解决方案2】:

    如果您希望针对屏幕尺寸(而不是针对像素密度)进行任何缩放,您需要自己进行。如果您将新的 xml 文件放在 res\layout-small 中,则可以在该文件中进行任何必要的调整,而无需更改中、大或 xlarge 屏幕上的布局行为。

    正如 Brandon 建议的那样,该更改可能是添加一个 ScrollView。它可能是一组更详细的更改,例如缩小徽标,使用更少的填充和边距,使用更小的字体大小等等。如果更改 logo 大小,可以通过更改 ImageView 的大小或在 res\drawable-small-ldpi、res\drawable-small-mdpi 等中提供较小的 logo 来完成。

    布局没有按比例缩小以适应较小的屏幕的原因是它不应该按屏幕尺寸缩小。一般来说,每个组件都会缩放,因此它在任何设备上的物理尺寸都应该大致相同,这意味着它会根据像素密度而不是尺寸进行缩放。例如,一个按钮可能会在 ldpi 设备和 mdpi 设备之间缩放像素数,但不会以英寸为单位缩放。如果它确实在物理尺寸上进行了扩展,那么一个小而可用的按钮将成为用户无法可靠点击的烦恼。

    是的,您的模拟器 AVD 图像似乎具有不同的按钮、图像和字体大小,但这是一种错觉。 AVD 的明显尺寸差异来自不同的像素密度。如果您使用将显示缩放到实际尺寸的选项(或创建屏幕尺寸小但 mdpi 密度的 AVD),您应该会看到两个 AVD 中大小大致相同的组件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-27
      • 2018-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多