隨筆 - 312, 文章 - 14, 評論 - 1393, 引用 - 0
          數(shù)據(jù)加載中……

          移動互聯(lián)網(wǎng)的新寵:Android之繽紛世界

          文為原創(chuàng),如需轉(zhuǎn)載,請注明作者和出處,謝謝!

                 Android這個詞已強(qiáng)占我們的眼球有一段時間了。在此之前,提到Android,沒人會和移動互聯(lián)網(wǎng)以及Google這兩個當(dāng)今最火辣的詞聯(lián)系起來。然而,自從Google推出自己的移動操作系統(tǒng)Android以來,AndroidGoogle和移動互聯(lián)網(wǎng)就好像10年前的Windows、微軟和PC操作系統(tǒng)一樣,成為了當(dāng)今最吸引眼球的組合。

               說到Android,現(xiàn)在一點都不會引起歧義,她就是Google最值得驕傲的移動操作系統(tǒng)。雖然Android并不是第一個智能手機(jī)操作系統(tǒng),當(dāng)然,也不會是最后一個智能手機(jī)操作系統(tǒng)。但她卻僅在出生不到兩年時間里成為了有望超越一切的移動操作系統(tǒng)。甚至在美國2010年第2季度的Android手機(jī)銷量已經(jīng)超越被認(rèn)為是銷售之王的IPhone。成為了當(dāng)今銷量增長最快的系統(tǒng)。取得這些成績,當(dāng)然,Android取得今天這些成績除了出身名門外,還有就是Android的免費開源。任何人、任何組織都可以免費使用Android,而無需付給Google一分錢。由于這些好處,使用支持Android的手機(jī)廠商越來越多。甚至被譽為“山寨之王”的聯(lián)發(fā)科也在研制支持Android的芯片,如果成功,Android手機(jī)的價格有望降到1000元以下,如果大多數(shù)Android手機(jī)真到了這個價格,那將會成為Android的另一個殺手锏。

          Android除了其客觀的優(yōu)勢外,主要面向移動互聯(lián)網(wǎng)也是Android成功的一個主要因素。大筆者寫作本文時,Android的最新版本是2.2。經(jīng)過試用,感覺Android 2.2的瀏覽器速度較以前的版本有了非常大的提高,Android 2.2的瀏覽器被稱為世界上最快的移動瀏覽順口 。在Android 2.2中還加入了新的Just-In-Time(JIT)技術(shù),使用在Android 2.2中運行的程序的運行速度較以前的版本快了2.5倍。

          Android的瀏覽器速度的提升也會為我們的應(yīng)用程序提供更多的選擇.傳統(tǒng)的Android應(yīng)用程序的UI都由Android組件來實現(xiàn)。而我們有了更快的瀏覽器,可以將在PC領(lǐng)域風(fēng)起云涌的AJAX與移動瀏覽器結(jié)合來向用戶展現(xiàn)更絢麗的界面。說起AJAX,可能從事Web開發(fā)的程序員并不會陌生。在最近幾年國內(nèi)外也出現(xiàn)了很多流行的AJAX框架。其中Ext JS就是其中的佼佼者。Ext JS主要用于設(shè)計Web界面,其中大量使用了JavaScriptExt JS技術(shù),但使用起來卻很容易。例如,Ext JS可以很容易地模擬Windows XP的界面,當(dāng)然,這個界面是基于Web的。在《人人都玩開心網(wǎng):Ext JS + Android + SSH整合開發(fā)web與移動SNS》一書中通篇來完成一個利用Ext JS技術(shù)實現(xiàn)的SNS系統(tǒng),界面就模仿了Windows XP的風(fēng)格,見圖1所示。




              顯然,加入了Ext JSWeb程序要比傳統(tǒng)的Web程序絢麗得多。既然PC可以如此,那么手機(jī)為什么不呢?經(jīng)過筆者的測試,Ext JS也同樣可以在Android內(nèi)嵌的手機(jī)瀏覽器中使用,讓我們看看如圖2所示的實際效果。

          如果本文的讀者是開發(fā)人員,那么就需要使用Android SDKWebView組件來顯示我們需要的內(nèi)容。在《人人都玩開心網(wǎng):Ext JS + Android + SSH整合開發(fā)web與移動SNS》一書中除了提供了提供了一個完整的基于Web版的SNS,還開發(fā)了一個基于AndroidSNS。在這個Android版的SNS中,利用了WebView組件來顯示服務(wù)端返回的HTML格式的內(nèi)容。當(dāng)然,如果讀者也可以向其中嵌入AJAX、Ext JS等高級特性。

          AndroidWebView固然強(qiáng)大,不過很多時候還要依賴于Android組件。這些組件的常規(guī)的使用方法這里就不必說了,而在這些組件中還有很多比較有趣的使用方法。例如,使用過QQ for Android的開發(fā)人員可能會發(fā)現(xiàn),在輸入聊天記錄時,可以直接將表情圖像放到EditText組件中(如圖3所示)。也許會多初學(xué)者會感覺實現(xiàn)這個功能比較困難,但實際上實現(xiàn)這個功能再簡單不過了。


               我們一般通過EditTextsetText方法來設(shè)置EditText中的文本,例如如下的代碼向EditText添加了一個字符串。

          EditText edittext = (EditText)findByView(R.id.edittext);
          Edittext.setText(“測試數(shù)據(jù)”);

               我們只需要對上面的代碼稍微做一下手腳,就可以實現(xiàn)將圖像插入到EditText中的目的。如果讀者看過《Android/OPhone開發(fā)完全講義》,會發(fā)現(xiàn)書中在很多情況下使用了文本標(biāo)記(類似于HTML語言的標(biāo)簽,但只包含了十分有限的HTML語言的功能)。在這些標(biāo)記中有一個<img>標(biāo)記。通過這個標(biāo)記,可以很容易地實現(xiàn)將圖像插入到EditText的功能。不過使用<img>標(biāo)簽要比使用其他的標(biāo)簽多一個步驟,這就是要實現(xiàn)一個ImageGetter接口,通過這個接口,可以獲得一個Drawable對象。先看看如下的代碼:


              ImageGetter imageGetter = new ImageGetter()
              {

                  @Override
                  
          public Drawable getDrawable(String source)
                  {
                      
          int id = Integer.parseInt(source);
                      Drawable d 
          = getResources().getDrawable(id);
                      d
                              .setBounds(
          00, d.getIntrinsicWidth(), d
                                      .getIntrinsicHeight());
                      
          return d;
                  }
              };

              上面的代碼通過ImageGetter接口的getDrawable方法返回了一個Drawable對象,其中source參數(shù)的值就是<img>標(biāo)簽的src屬性的值。我們需要通過如下的代碼來使用<img>標(biāo)簽。

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

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

              其中faces是一個int類型數(shù)組,保存了相應(yīng)的drawable資源的ID值。在使用<img>標(biāo)簽之前需要使用Html.fromHtml方法來封裝這些標(biāo)簽,如果使用的是<img>標(biāo)簽,需要使用fromHtml方法的第2個參數(shù)指定ImageGetter對象,以便通過<img>標(biāo)簽的src屬性獲得相應(yīng)的Drawable對象。通過EditText.append方法插入<img>標(biāo)簽后,系統(tǒng)會自動將<img>標(biāo)簽轉(zhuǎn)換成相應(yīng)的圖像顯示在EditText中。下面來看看我們的成果(如圖4所示)。



              在本文向讀者展示了Android中的瀏覽器、Ext JS、EditText圖文混排的功能,讀者從中也看到了Android中的繽紛世界。其實Android的功能還遠(yuǎn)不只這些。那么剩下的就留給讀者來挖掘吧。





          Android開發(fā)完全講義(第2版)(本書版權(quán)已輸出到臺灣)

          http://product.dangdang.com/product.aspx?product_id=22741502



          Android高薪之路:Android程序員面試寶典 http://book.360buy.com/10970314.html


          新浪微博:http://t.sina.com.cn/androidguy   昵稱:李寧_Lining

          posted on 2010-08-17 12:14 銀河使者 閱讀(2063) 評論(2)  編輯  收藏 所屬分類: java 原創(chuàng) 、移動(mobile) 、Android/OPhone

          評論

          # re: 移動互聯(lián)網(wǎng)的新寵:Android之繽紛世界  回復(fù)  更多評論   

          繼續(xù)攢錢,目標(biāo)G6
          2010-08-18 21:44 | Danfi

          # re: 移動互聯(lián)網(wǎng)的新寵:Android之繽紛世界  回復(fù)  更多評論   

          @Danfi
          直接G7吧
          2010-08-23 22:07 | 銀河使者
          主站蜘蛛池模板: 建始县| 乌兰浩特市| 大丰市| 名山县| 凯里市| 汝阳县| 友谊县| 临江市| 全州县| 鹿泉市| 晋城| 大悟县| 玉田县| 柳林县| 成武县| 秭归县| 海盐县| 石门县| 江陵县| 金山区| 苏州市| 盐城市| 集安市| 德格县| 泰宁县| 静海县| 常宁市| 北辰区| 中山市| 皋兰县| 阳新县| 秦皇岛市| 隆安县| 威宁| 横峰县| 云安县| 大竹县| 灵台县| 响水县| 浮梁县| 长岛县|