2010-12-19 241 views
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中,即使它具有高分辨率?开发人员正在做什么来实现这一目标?我的意思是,您可以让您的应用程序具有一种弹性和或者,谷歌是否检测到该应用是为更小的屏幕设计的,因此它可以处理Galaxy Tab的大小调整?我是否需要更改AndroidManifest.xml中的内容?
  3. 我使用HVGA默认值当我切换到WVGA800时,它慢了很多,为什么呢?

回答

8

这里是我的答案,完全从Android开发人员spective(我与PhoneGap的没有经验,所以我不能说是如何影响的东西):

  1. 对于大多数我的测试中,我专注于小320x480 480x800的和。对于平板电脑,您还需要针对Galaxy Tab进行专门测试(有关在仿真器中测试的更多详细信息,请参阅)。

  2. Android中的布局通常设计(或应该)以支持任何屏幕尺寸。通常,视图设置为MATCH_PARENT(以前为FILL_PARENT)或WRAP_CONTENT,因此它们的大小取决于它们所在的布局或其包含的内容,而不是显示的大小。你也可以指定“DP”(密度无关像素),它会自动为你缩放(所以2dp在HVGA设备上是2px,而在WVGA设备上是3px)。字体应该在SP中指定,它们基本上是相同的,但也要考虑用户的字体偏好。

    您也可以应用拉伸视图的重量。例如,如果你有一个水平方向的LinearLayout,你可以在其中放置两个视图(比如说一个TextView和一个EditTextView)。您可以将这两个参数设置为WRAP_CONTENT以确定它们的宽度和高度,但是您可能会向EditTextView添加一个layout_weight =“1”,告诉它填充剩余的空间。此外,您可以为大型设备创建特定布局,以自定义Galaxy Tab的显示。

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

话虽这么说,它看起来像PhoneGap的或多或少像开发一个Web应用程序,在这种情况下,你会发现Android Web Apps articles有帮助的。

编辑(因为我的格式是越来越乱了响应的第一个评论):

没有,有没有什么在AndroidManifest其他改变不是指定你支持什么样的:

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

对于CSS,你可以specify styles based on density或使用标准的百分比,电磁测量等

+0

优秀的,周到的答案。所以,为了补充这一点,我需要以某种方式设置我的AndroidManifest.xml来处理DP和SP?那么CSS样式怎么样 - 我是否也需要在DP和SP中使用测量? – Volomike 2010-12-19 20:03:23

+0

我在使用更高分辨率的手机时注意到的最大问题是,在480像素的屏幕上尺寸适当的文本在720屏幕上突然变小。你知道任何简洁的字体大小更大的屏幕? – 2013-03-25 23:06:14

1

我已经用我的以下表现我的应用程序可以在任何尺寸上运行的开始:

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