屏幕分辨率

3

我主要从以下两个来源学习Android和Phonegap开发:

http://news.softpedia.com/news/How-to-Run-Android-Applications-on-Ubuntu-115152.shtml

http://wiki.phonegap.com/w/page/30862722/phonegap-android-eclipse-quickstart

我的设备是三星Galaxy Tab.

令我困惑的是:

  1. 在开发中,为了覆盖2010年第四季度在这里使用的Android手机和平板电脑数量最多,应该使用什么屏幕大小?您是否建议WVGA800用于480x800的屏幕?
  2. 大多数Android应用如何能够在我的7英寸三星Galaxy Tab上正确地调整大小,即使它具有高分辨率?开发者们是如何实现这一点的?我的意思是,您是否可以让您的应用程序具有一种“可伸缩性”,并且字体也能被拉伸?或者,Google是否检测到该应用程序是针对较小的屏幕设计的,因此它会处理Galaxy Tab的调整大小?并且我需要更改AndroidManifest.xml中的某些内容吗?
  3. 当我在模拟器中使用HVGA默认值时,速度非常快。但是当我切换到WVGA800时,速度变得非常慢。为什么会这样?
2个回答

8
以下是我完全从Android开发人员的角度回答的答案(我没有使用PhoneGap的经验,因此无法说这会对事情产生什么影响):
  1. 对于我的大多数测试,我专注于320x480和480x800。对于平板电脑,您还需要专门针对Galaxy Tab进行测试(有关在模拟器中测试的详细信息,请参见三星网站)。
  2. Android中的布局通常设计(或应该设计)支持任何屏幕大小。通常,视图设置为MATCH_PARENT(以前为FILL_PARENT)或WRAP_CONTENT,因此它们的大小取决于它们所在的布局或它们包含的内容,而不是显示器的大小。您还可以指定“DP”(密度独立像素),它会自动缩放(因此,在HVGA设备上2dp将为2px,但在WVGA设备上为3px)。字体应该用SP指定,它们本质上是相同的,但也考虑了用户的字体首选项。
  3. 您还可以应用权重来拉伸视图。例如,如果您有一个LinearLayout,其水平方向,您可以在其中放置两个视图(假设为TextView和EditTextView)。您可能会将这两者的宽度和高度都设置为WRAP_CONTENT,但您可能会在EditTextView中添加layout_weight =“1”,告诉它填充剩余空间。此外,您可以为大型设备创建特定的布局,以自定义Galaxy Tab的显示。

  4. 分辨率越高,模拟器处理的像素就越多。您还会注意到Android版本之间的性能差异。

话虽如此,看起来PhoneGap或多或少像开发WebApp,在这种情况下,您将发现Android Web Apps文章很有帮助。

编辑(对第一条评论的回应,因为我的格式混乱了):

不,AndroidManifest中没有任何要更改的内容,除了指定您支持的内容:

<supports-screens
  android:smallScreens="true"
  android:normalScreens="true"
  android:largeScreens="true"
  android:xlargeScreens="true"
  android:anyDensity="true" />

对于CSS,您可以根据密度指定样式或使用标准的百分比、em度量等。

非常好的答案,思考周到。那么,为了补充一下,我需要以某种方式设置我的AndroidManifest.xml来处理DP和SP吗?而且CSS样式呢——我也需要使用DP和SP作为度量单位吗? - Volomike
我在处理分辨率更高的手机时遇到的最大问题是,在480像素屏幕上适当大小的文本在720像素屏幕上突然变得非常小。您知道有没有简洁的方法可以使更大屏幕上的字体大小变得更大? - Ciaran Gallagher

1

我已经开始在适用于任何尺寸的应用程序的清单文件中使用以下内容:

<supports-screens 
android:smallScreens="true"                   
android:normalScreens="true"                   
android:largeScreens="true"                   
android:anyDensity="true" />
<uses-sdk android:minSdkVersion="4"></uses-sdk>

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