针对各种设备和屏幕尺寸的最佳实践

3

众所周知,现在的安卓系统有许多版本、许多构造器、许多屏幕尺寸...

对于开发人员来说,编写能够适配大部分设备的程序非常困难。

那么,作为开发人员必须掌握哪些技巧呢?

  • 流式布局的技巧。
  • 针对任何安卓版本开发的“标准”。
  • ......

还有其他的想法吗?

4个回答

5

关于布局

首先,您应该阅读官方的多屏幕支持最佳实践指南。那里有很多好的建议,以及对兼容性要求的一般理解。

我发现一个非常有帮助,似乎很明显的方法,那就是在各种大小的模拟器中测试您的布局。当您将其扩展到1024x768时(尽管没有设备会有这样的分辨率),您的布局看起来如何?当它变得非常小而方形时呢?观察您的布局如何拉伸/收缩,这将有助于您调整它以更好地适应所有屏幕。

layout_weight

在布局中,android:layout_weight是一个强大但未经记录的属性。使用它,您可以创建组件大小按百分比相对于彼此的布局。

例如:

<LinearLayout android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <EditText android:layout_weight="80" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <Button android:layout_weight="20"
        android:text="Button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content />
</LinearLayout>

在这个布局中,<EditText/>将占用可用宽度的80%,而<Button/>将占用可用宽度的20%。显然,这应该小心使用,以便即使它们很小,所有项目仍然可以使用。

<include />

另一个有用的布局技巧是将常见的布局部分捆绑到单独的文件中,并使用<include layout="@layout/smaller_section" />进行包含。这样,您就可以重新排列布局的其他部分(例如横向布局),而无需保留整个并行版本的布局。


1

到目前为止,我发现的唯一几件事:

  1. 尽可能开发最低的SDK版本。我针对2.2,但只使用1.6的API,到目前为止(敲木头),这效果很好。由于这些是由清单驱动的,因此您仍然可以支持诸如备份和将应用程序移动到SD卡之类的功能。
  2. 对于非常小的屏幕,您可能需要一个单独的布局。使用模拟器,我发现仅缩小图形大小并不能使布局可用-您需要重新排列和剥离一些元素。
  3. 有时需要单独的纵向和横向模式布局-但通常纵向在横向模式下也能正常工作。

看看其他人会说什么会很有趣-特别是围绕为不同密度提供多个可绘制资源。我无法确定为什么有时需要使用-hdpi,有时不需要在hdpi屏幕上获得良好的结果。


-1

我同意Johnny的观点,使用移动样式表。例如:

<link rel="stylesheet" href="screen.css" media="screen"/>
<link rel="stylesheet" href="handheld.css" media="handheld"/>

无论您在页面底部做什么,都要允许用户在两者之间进行切换。例如,许多“移动”站点在底部包括一个链接,以查看“完整”站点。这样,用户可以自主决定其设备的功能。


-1

我倾向于使用一个移动样式表,只有在从移动设备访问应用程序时才包含。该样式表通常应用于最小宽度(取决于用户和设备要求),并将内容填充到屏幕宽度的100%。

其他建议:

  • 移动特定的着陆页面,完全由菜单和搜索框占据
  • 评估哪些内容对移动用户实际上很重要,并专注于这些内容
  • 没有死路 - 即使搜索返回零结果,也要轻松继续(新搜索,页面建议)
  • 如果适用,则进行地理定位(例如显示附近商店位置的谷歌地图)
  • 如有可能,请在各种设备上进行测试(例如黑莓的本机浏览器往往难以处理jquery)

1
我认为Youssef不是在问网站设计,而是在问应用程序设计。 - Sebi
1
正如Sebi所说,我不是在谈论从移动设备访问网站的问题,而是关于支持广泛设备的Android应用程序。无论如何,感谢您的回答。 - Youssef

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接