Android开发:多屏幕适配与HoneycombUI及操作栏使用指南
立即解锁
发布时间: 2025-08-24 00:47:50 阅读量: 1 订阅数: 6 


Android开发入门与实践指南
### Android开发:多屏幕适配与Honeycomb UI及操作栏使用指南
#### 1. 多屏幕尺寸处理
在处理多屏幕尺寸时,对于特定的点击事件,代码示例如下:
```java
int position, long id) {
String url=getString(EU.get(position).url);
if (browser==null) {
startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse(url)));
}
else {
browser.loadUrl(url);
}
}
```
此代码实现了一个更节省空间的活动版本。当用户在维基百科页面中点击链接时,会打开完整浏览器以便于浏览。不过,测试此版本的活动需要额外的模拟器设置。默认情况下,Android将WVGA设备设置为高密度,需要创建一个设置为正常(中等)密度的模拟器AVD,以获得大屏幕尺寸。
如果第二个活动不是浏览器,而是自己创建的包含许多小部件的布局活动,想要在小屏幕上作为独立活动使用,在大屏幕上嵌入主活动UI,对于Android 1.6及更高版本,最佳方法是采用新的碎片(fragments)系统。虽然该系统在Android 3.0中引入,但Android兼容性库使其可在早期版本的Android中使用。
#### 2. Honeycomb UI介绍
2011年2月,Android 3.0(代号Honeycomb)发布,带来了全新的UI范式。Android 3.0专门针对平板电脑,不过Honeycomb UI系统的部分元素也会应用于未来支持手机的Android版本。它是自Android 0.9以来Android最大的一次单一变革,其影响将在Android生态系统中持续很久。
##### 2.1 为何需要Honeycomb
原则上,Android最初以手机为中心的UI可以在平板电脑上运行,如三星Galaxy Tab就搭载了Android 2.2。但随着平板电脑屏幕变大(如摩托罗拉XOOM的10英寸屏幕),手机UI变得笨拙。应用程序虽可缩放以利用大屏幕,但默认缩放方式只是简单放大,常导致大量空间浪费。例如,手机上的电子邮件客户端可能用一个活动显示收件箱列表,而平板电脑上应同时显示邮件列表和所选邮件内容。而且,依赖菜单在手机上合理,但在平板电脑上,屏幕有足够空间直接显示更多功能,将其隐藏在菜单中会降低用户发现功能的可能性,且需要额外点击才能访问。
因此,Honeycomb旨在保留Android用户体验的本质,同时让应用程序能相对优雅地利用可用空间。
##### 2.2 用户视角
Android 3.0屏幕与Android 2.x屏幕有所不同:
- **系统栏**:屏幕顶部的状态栏移至底部,称为系统栏。系统栏左端有返回、主页和最近任务的屏幕按钮(以前需长按主页按钮),右端显示通知图标、时钟以及信号和电池强度指示器。
- **未优化应用**:未针对Android 3.x优化的应用程序UI与Android 2.x基本相同,唯一显著区别是系统栏中有一个新图标,若应用有选项菜单,点击该图标可打开。
- **优化应用**:针对Android 3.0优化的应用程序屏幕顶部有操作栏(action bar),它在很大程度上取代了选项菜单,定义方式与选项菜单相同。操作栏左端的图标可点击,点击后用户可在应用的操作层次结构中向上导航。例如,在添加新联系人时点击该图标会返回现有联系人列表。在Android 2.x中,联系人UI用一个活动显示联系人列表,另一个活动查看联系人详情;而在Android 3.0中,这些功能合并到一个活动中。未来将Honeycomb UI应用于手机时,同一代码库将恢复为每个操作一个活动的模式,这通过碎片系统实现。此外,操作栏中还集成了“查找联系人”搜索字段,右侧的菜单项混合了选项菜单项(如添加新联系人)和所选联系人的上下文菜单项(如编辑联系人)。
##### 2.3 全息主题
更新为支持Android 3.0的应用程序外观和感觉会不同,不仅整个活动如此,单个小部件也会受影响。默认情况下,支持Honeycomb的应用程序会应用所谓的全息主题,这会显著改变小部件的外观。例如,操作栏中的“所有联系人”是一个下拉列表,以前选择下拉列表值的弹出对话框被真正的下拉菜单取代;使用TabWidget实现的标签外观也会有很大变化。
如果创建自定义样式,可考虑继承以下两种主题:
- **Theme.Holo**:标准的深色全息主题(深色背景,浅色文本)。
- **Theme.Holo.Light**:浅色版本(浅色背景,深色文本)。
##### 2.4 兼容其他设备
Android 3.0发布后,世界上的Android手机仍大量存在。目标是创建一个能从单一代码库同时支持手机和平板电脑的应用程序。
手机中心的应用程序可在平板电脑上正常运行,但可采取一些措施利用更大屏幕尺寸。若想采用Honeycomb UI的外观和感觉,需在清单文件的`<uses-sdk>`元素中包含`android:targetSdkVersion="11"`。若希望Honeycomb活动有渐变背景,可在`<application>`或`<activity>`元素中添加`android:hardwareAccelerated="true"`属性,以开启2D图形的硬件加速。示例清单文件如下:
```xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.commonsware.android.eu4you"
android:versionCode="1"
android:versionName="1.0">
<uses-permission android:name="android.permission.INTERNET" />
<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true"
/>
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="11" />
<application android:label="@string/app_name"
android:icon="@drawable/cw"
android:hardwareAccelerated="true">
<activity android:name=".EU4You"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
```
这样的应用程序在旧设备上也能正常工作。若想利用Honeycomb的一些新功能,还需考虑向后兼容性,确保应用程序在新旧版本的Android上都能成功运行。如果资源(如样式)需要特定版本,可使用 -v11 资源集后缀。例如,可创建`res/values/styles.xml`和`res/values-v11/styles.xml`,后者用于Honeycomb,前者用于旧版本的Android。
#### 3. 使用操作栏
使应用程序更好地融入Honeycomb UI的简单方法之一是启用操作栏。操作栏的基本功能大多具有向后兼容性,Honeycomb设置不会导致应用程序在早期版本的
0
0
复制全文
相关推荐










