EditText中顯示圖片

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

我們一般通過EditTextsetText方法來設置EditText中的文本,例如如下的代碼EditText添加了一個字符串。EditText edittext = (EditText)findByView(R.id.edittext);
Edittext.setText(“測試數據”);

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

 

Java代碼  收藏代碼
  1. 1.    ImageGetter imageGetter = new ImageGetter()  
  2. 2.    {  
  3. 3.  
  4. 4.        @Override  
  5. 5.        public Drawable getDrawable(String source)  
  6. 6.        {  
  7. 7.            int id = Integer.parseInt(source);  
  8. 8.            Drawable d = getResources().getDrawable(id);  
  9. 9.            d  
  10. 10.                    .setBounds(00, d.getIntrinsicWidth(), d  
  11. 11.                            .getIntrinsicHeight());  
  12. 12.            return d;  
  13. 13.        }  
  14. 14.    };  

 

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

 

Java代碼  收藏代碼
  1. editText.append(Html.fromHtml("<imgsrc='"+ 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所示)。

 
發佈了11 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章