Android 这个词已强占我们的眼球有一段时间了。在此之前,提到 Android ,没人会和移动互联网以及 Google 这两个当今最火辣的词联系起来。然而,自从 Google 推出自己的移动操作系统 Android 以来, Android Google 和移动互联网就好像 10 年前的 Windows 、微软和 PC 操作系统一样,成为了当今最吸引眼球的组合。

说到 Android ,现在一点都不会引起歧义,她就是 Google 最值得骄傲的移动操作系统。虽然 Android 并不是第一个智能手机操作系统,当然,也不会是最后一个智能手机操作系统。但她却仅在出生不到两年时间里成为了有望超越一切的移动操作系统。甚至在美国 2010 年第 2 季度的 Android 手机销量已经超越被认为是销售之王的 IPhone 。成为了当今销量增长最快的系统。取得这些成绩,当然, Android 取得今天这些成绩除了出身名门外,还有就是 Android 的免费开源。任何人、任何组织都可以免费使用 Android ,而无需付给 Google 一分钱。由于这些好处,使用支持 Android 的手机厂商越来越多。甚至被誉为“山寨之王”的联发科也在研制支持 Android 的芯片,如果成功, Android 手机的价格有望降到 1000 元以下,如果大多数 Android 手机真到了这个价格,那将会成为 Android 的另一个杀手锏。

Android 除了其客观的优势外,主要面向移动互联网也是 Android 成功的一个主要因素。大笔者写作本文时, Android 的最新版本是 2.2 。经过试用,感觉 Android 2.2 的浏览器速度较以前的版本有了非常大的提高 ,Android 2.2 的浏览器被称为世界上最快的移动浏览顺口 。在 Android 2.2 中还加入了新的 Just-In-Time(JIT) 技术,使用在 Android 2.2 中运行的程序的运行速度较以前的版本快了 2.5 倍。

Android 的浏览器速度的提升也会为我们的应用程序提供更多的选择 . 传统的 Android 应用程序的 UI 都由 Android 组件来实现。而我们有了更快的浏览器,可以将在 PC 领域风起云涌的 AJAX 与移动浏览器结合来向用户展现更绚丽的界面。说起 AJAX ,可能从事 Web 开发的程序员并不会陌生。在最近几年国内外也出现了很多流行的 AJAX 框架。其中 Ext JS 就是其中的佼佼者。 Ext JS 主要用于设计 Web 界面,其中大量使用了 JavaScript Ext JS 技术,但使用起来却很容易。例如, Ext JS 可以很容易地模拟 Windows XP 的界面,当然,这个界面是基于 Web 的。在《人人都玩开心网: Ext JS + Android + SSH 整合开发 web 与移动 SNS 》一书中通篇来完成一个利用 Ext JS 技术实现的 SNS 系统,界面就模仿了 Windows XP 的风格,见图 1 所示。

移动互联网的新宠:Android之缤纷世界

移动互联网的新宠:Android之缤纷世界

p.MsoNormal, li.MsoNormal, div.MsoNormal { margin: 0cm 0cm 0.0001pt; text-align: justify; font-size: 10.5pt; font-family: "Calibri","sans-serif"; }.MsoChpDefault { font-size: 10pt; }div.WordSection1 { page: WordSection1; } 显然,加入了 Ext JS Web 程序要比传统的 Web 程序绚丽得多。既然 PC 可以如此,那么手机为什么不呢?经过笔者的测试, Ext JS 也同样可以在 Android 内嵌的手机浏览器中使用,让我们看看如图 2 所示的实际效果。

如果本文的读者是开发人员,那么就需要使用 Android SDK WebView 组件来显示我们需要的内容。在《人人都玩开心网: Ext JS + Android + SSH 整合开发 web 与移动 SNS 》一书中除了提供了提供了一个完整的基于 Web 版的 SNS ,还开发了一个基于 Android SNS 。在这个 Android 版的 SNS 中,利用了 WebView 组件来显示服务端返回的 HTML 格式的内容。当然,如果读者也可以向其中嵌入 AJAX Ext JS 等高级特性。

Android WebView 固然强大,不过很多时候还要依赖于 Android 组件。这些组件的常规的使用方法这里就不必说了,而在这些组件中还有很多比较有趣的使用方法。例如,使用过 QQ for Android 的开发人员可能会发现,在输入聊天记录时,可以直接将表情图像放到 EditText 组件中(如图 3 所示)。也许会多初学者会感觉实现这个功能比较困难,但实际上实现这个功能再简单不过了。
移动互联网的新宠:Android之缤纷世界

p.MsoNormal, li.MsoNormal, div.MsoNormal { margin: 0cm 0cm 0.0001pt; text-align: justify; font-size: 10.5pt; font-family: "Calibri","sans-serif"; }.MsoChpDefault { font-size: 10pt; }div.WordSection1 { page: WordSection1; } 我们一般通过 EditText setText 方法来设置 EditText 中的文本,例如如下的代码向 EditText 添加了一个字符串。

EditTextedittext = (EditText)findByView(R.id.edittext);
Edittext.setText(“测试数据”);

p.MsoNormal, li.MsoNormal, div.MsoNormal { margin: 0cm 0cm 0.0001pt; text-align: justify; font-size: 10.5pt; font-family: "Calibri","sans-serif"; }.MsoChpDefault { font-size: 10pt; }div.WordSection1 { page: WordSection1; }

我们只需要对上面的代码稍微做一下手脚,就可以实现将图像插入到 EditText 中的目的。如果读者看过《 Android/OPhone 开发完全讲义》,会发现书中在很多情况下使用了文本标记(类似于 HTML 语言的标签,但只包含了十分有限的 HTML 语言的功能)。在这些标记中有一个 <img> 标记。通过这个标记,可以很容易地实现将图像插入到 EditText 的功能。不过使用 <img> 标签要比使用其他的标签多一个步骤,这就是要实现一个 ImageGetter 接口,通过这个接口,可以获得一个 Drawable 对象。先看看如下的代码:


ImageGetterimageGetter = new ImageGetter()
{

@Override
public DrawablegetDrawable(Stringsource)
{
int id = Integer.parseInt(source);
Drawabled
= getResources().getDrawable(id);
d
.setBounds(
0 , 0 ,d.getIntrinsicWidth(),d
.getIntrinsicHeight());
return d;
}
};

p.MsoNormal, li.MsoNormal, div.MsoNormal { margin: 0cm 0cm 0.0001pt; text-align: justify; font-size: 10.5pt; font-family: "Calibri","sans-serif"; }.MsoChpDefault { font-size: 10pt; }div.WordSection1 { page: WordSection1; }

上面的代码通过 ImageGetter 接口的 getDrawable 方法返回了一个 Drawable 对象,其中 source 参数的值就是 <img> 标签的 src 属性的值。我们需要通过如下的代码来使用 <img> 标签。

editText.append(Html.fromHtml("<img src='"

+ faces[new Random().nextInt(6)] + "'/>", imageGetter, null));

其中 faces 是一个 int 类型数组,保存了相应的 drawable 资源的 ID 值。在使用 <img> 标签之前需要使用 Html.fromHtml 方法来封装这些标签,如果使用的是 <img> 标签,需要使用 fromHtml 方法的第 2 个参数指定 ImageGetter 对象,以便通过 <img> 标签的 src 属性获得相应的 Drawable 对象。通过 EditText.append 方法插入 <img> 标签后,系统会自动将 <img> 标签转换成相应的图像显示在 EditText 中。下面来看看我们的成果(如图 4 所示)。

移动互联网的新宠:Android之缤纷世界

p.MsoNormal, li.MsoNormal, div.MsoNormal { margin: 0cm 0cm 0.0001pt; text-align: justify; font-size: 10.5pt; font-family: "Calibri","sans-serif"; }.MsoChpDefault { font-size: 10pt; }div.WordSection1 { page: WordSection1; }

在本文向读者展示了 Android 中的浏览器、 Ext JS EditText 图文混排的功能,读者从中也看到了 Android 中的缤纷世界。其实 Android 的功能还远不只这些。那么剩下的就留给读者来挖掘吧。

更多相关文章

  1. Android用户界面 UI组件--自动提示输入框 AutoCompleteTextView
  2. Android四大组件完全解析(一)---Activity
  3. Android虚拟键盘挡住输入组件的解决办法
  4. 专家专栏:Android层次化安全架构及核心组件概览
  5. Android安全机制--四大组件安全
  6. Android官方架构组件DataBinding双向绑定篇: 观察者模式的殊途同
  7. Android Manifest标签之manifest,meta-data,path-permission,per
  8. 从Android浏览器(并不是Appliaction里面的webkit)打开应用程序/
  9. Android界面布局开发使用的标签介绍

随机推荐

  1. android4.0 上定制状态栏
  2. Android(安卓)Launcher 如何去掉主菜单,所
  3. android 仿微信多图选择器(带预览、照相
  4. Android(安卓)RIL 架构学习总结 .
  5. Android(安卓)poweroff 流程
  6. android studio 构建maven私有库环境搭建
  7. [Android] 通过代码调用返回键
  8. Android(安卓)FileProvider的理解
  9. Android针对两种UNICODE转中文
  10. Android使用BottomSheetBehavior 和 Bott