针对各种设备和屏幕尺寸的最佳做法

时间:2010-08-31 14:09:45

标签: android device

如你所知,Android今天有很多版本,很多版本,很多屏幕尺寸......

今天的开发人员很难编写针对大部分设备的程序。

开发人员必须知道的做法是什么?

  • 流体布局提示。
  • “标准”用于开发任何Android版本。
  • ...

还有其他想法吗?

4 个答案:

答案 0 :(得分:5)

布局

首先,您应该先阅读官方Supporting Multiple Screens Best Practices。那里有很多好的提示,以及关于你需要在兼容性方面寻找什么的一般想法。

我发现有一件事非常有用,这似乎很明显,实际上是在各种大小的模拟器中测试你的布局。扩展到1024x768时,您的布局如何显示(即使没有设备会有这样的res)?当它超级小而方正的时候怎么样?了解您的布局如何延伸/收缩将帮助您调整它以更好地适应所有屏幕。

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)

到目前为止我发现的唯一的事情:

  1. 发展到最低的SDK版本。我的目标是2.2,但只使用1.6和迄今为止(触摸木材)的API,效果很好。你仍然可以支持诸如备份和将应用程序移动到SD卡之类的东西,因为这些是由Manifest驱动的。
  2. 对于非常小的屏幕,您可能需要单独的布局。使用模拟器我发现只是减小图形的大小并不能使布局可用 - 你需要重新排列和去掉一些元素。
  3. 有时候你需要一个单独的纵向和横向模式布局 - 但通常这幅肖像在风景中效果很好。
  4. 看到其他人要说的话会很有趣 - 尤其是为不同密度提供多种可绘制资源。我无法理清为什么有时需要使用-hdpi,有时候不能在hdpi屏幕上获得好的结果。

答案 2 :(得分:-1)

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

其他建议:

  • 特定于移动设备的目标网页 完全通过菜单和搜索 框
  • 评估哪些内容对移动用户真正重要,并专注于
  • 没有死角 - 即使搜索返回零结果,也可以轻松继续(新搜索,页面建议)
  • 地理位置(如果适用)(即a 显示商店位置的谷歌地图
    附近)
  • 尽可能在各种设备上进行测试(即 黑莓的原生浏览器倾向于 与jquery有困难)

答案 3 :(得分:-1)

我同意约翰尼,使用移动样式表。例如:

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

但无论你在页面底部做什么,都允许用户在两​​者之间进行交换。例如,许多“移动”网站底部都有一个链接,用于查看“完整”网站。这样,用户就其设备的功能做出了有意识的决定。