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

本文介绍了Android平台上的开发技巧,包括利用Android 2.2版本的浏览器性能提升进行Web应用开发,结合ExtJS技术实现丰富的用户界面,并展示了如何在EditText组件中插入图片等实用技巧。

Android 这个词已强占我们的眼球有一段时间了。在此之前,提到 Android ,没人会和移动互联网以及 Google 这两个当今最火辣的词联系起来。然而,自从 Google 推出自己的移动操作系统 Android 以来, AndroidGoogle 和移动互联网就好像 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 界面,其中大量使用了 JavaScriptExt JS 技术,但使用起来却很容易。例如, Ext JS 可以很容易地模拟 Windows XP 的界面,当然,这个界面是基于 Web 的。在《人人都玩开心网: Ext JS + Android + SSH 整合开发 web 与移动 SNS 》一书中通篇来完成一个利用 Ext JS 技术实现的 SNS 系统,界面就模仿了 Windows XP 的风格,见图 1 所示。




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 JSWeb 程序要比传统的 Web 程序绚丽得多。既然 PC 可以如此,那么手机为什么不呢?经过笔者的测试, Ext JS 也同样可以在 Android 内嵌的手机浏览器中使用,让我们看看如图 2 所示的实际效果。

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

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


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; }     我们一般通过 EditTextsetText 方法来设置 EditText 中的文本,例如如下的代码向 EditText 添加了一个字符串。

EditText edittext  =  (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 对象。先看看如下的代码:


    ImageGetter imageGetter  =   new  ImageGetter()
    {

        @Override
        
public  Drawable getDrawable(String source)
        {
            
int  id  =  Integer.parseInt(source);
            Drawable d 
=  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 所示)。



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 JSEditText 图文混排的功能,读者从中也看到了 Android 中的缤纷世界。其实 Android 的功能还远不只这些。那么剩下的就留给读者来挖掘吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值