獲取遠程文章內容時,顯示圖片的兩種方式

第一種:android

經過Html.fromHtml(String,ImageGetter,tagHandler)json

CharSequence text = Html.fromHtml(capter, new ImageGetter() {                    
                    @Override
                    public Drawable getDrawable(String source) {
                        Drawable drawable = null;
                        try {
                            drawable = Drawable.createFromStream(new URL(source).openStream(),"image");//從遠程獲取圖片
                            drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());//要設置邊界信息  Drawable自己是沒有邊界信息的
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                        return drawable;
                }}, null);數組

capter_view= (TextView)findViewById(R.id.bookcapter);ide

capter_view.setText(text);//就能夠顯示出img的圖片信息了(這些操做都不要放在UI線程裏作,由於圖片下載可能比較費時。)spa

 

第二種:線程

這個須要服務端配合,服務端須要將圖片和文字信息在服務端分割開,同時給index來標示位置(爲了解決內容分割後不會交叉,客戶端能夠按index按原來的順序來排列顯示)繼承

服務端返回的是以圖片img標籤分割的json數組(這個操做android端應該也能夠作)圖片

 

客戶端遍歷json數組顯示get

若是是img的類型則建立ImageView來顯示imgio

若是是text的類型則建立TextView來顯示text

這塊操做能夠封裝成 繼承LinearLayout 的自定義TestView控件

而後把json數組轉成List<HashMap<key,value>> datas;

模擬TextView的setText方法,咱們也能夠自定義一個setText(),固然你也能夠定義其餘名稱,這個方法不是重寫,因此隨便自定義。

在這個方法裏遍歷數據生成ImageView或TextView

最後經過調用TestView.setText(datas);

生成ImageView後,把ImageView傳給新線程,在線程裏遠程獲取圖片drawable後,再ImageView.setImageDrawable(drawable)

相關文章
相關標籤/搜索