如你所知,Android今天有很多版本,很多版本,很多屏幕尺寸......
今天的开发人员很难编写针对大部分设备的程序。
开发人员必须知道的做法是什么?
还有其他想法吗?
答案 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)
到目前为止我发现的唯一的事情:
看到其他人要说的话会很有趣 - 尤其是为不同密度提供多种可绘制资源。我无法理清为什么有时需要使用-hdpi,有时候不能在hdpi屏幕上获得好的结果。
答案 2 :(得分:-1)
我倾向于使用仅在从移动设备访问应用时才包含的移动样式表。此样式表通常应用最小宽度(取决于用户和设备要求),并将内容填充到屏幕宽度的100%。
其他建议:
答案 3 :(得分:-1)
我同意约翰尼,使用移动样式表。例如:
<link rel="stylesheet" href="screen.css" media="screen"/>
<link rel="stylesheet" href="handheld.css" media="handheld"/>
但无论你在页面底部做什么,都允许用户在两者之间进行交换。例如,许多“移动”网站底部都有一个链接,用于查看“完整”网站。这样,用户就其设备的功能做出了有意识的决定。