android富文字 載入帶圖片的html
textView載入帶圖片的html
在android中textView中setText中加入富文字以及webView嵌入url是android互動html最簡單的兩種方式;
最近在專案中涉及到富文字;
當不考慮html中圖片載入時候比較簡單:
Spanned spanned = = Html.fromHtml(html);
tvContent.setText(spanned );
只需要提供html即可,但是如果html中有pic時候 則會出現以下的情況;
可以看到本該出現pic的地方出現了空格;所以在填充富文字時候需要對圖片處理一下,在Html中有兩個方法:
public static Spanned fromHtml(String source) {
}
public static Spanned fromHtml(String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler) {
}
其中三參的方法gormHtml可以處理圖片的問題,需要匿名內部類實現 ImageGetter,第三個引數置為null:
ImageGetter imgGetter = new Html.ImageGetter() {
public Drawable getDrawable(String source) {
Drawable drawable = null;
URL url;
try {
url = new URL(source);
Drawable.createFromStream(url.openStream(), "");
} catch (Exception e) {
e.printStackTrace();
return null;
}
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight());
return drawable;
}
};
CharSequence charSequence = Html.fromHtml(html, imageGetter, null);
tvContent.setText(charSequence );
這樣就很明瞭了,imageGetter就是根據url來獲取網路圖片填充富文字的,很明顯是一個好事操作,所以需要開子執行緒,而text的setText又是跟新UI的操作;這一點必須注意,不然你的drawable會為空,text無法填充富文字;
但是在填充過程中當html中pic比較多的時候回有部分獲取不到;接下來就需要你在handler中控制一下就ok~ 下面來看最終程式碼:
/**
*
* @param imageUrl
* @return
*/
public Drawable getImageFromNetwork(String imageUrl) {
URL myFileUrl = null;
Drawable drawable = null;
try {
myFileUrl = new URL(imageUrl);
HttpURLConnection conn = (HttpURLConnection) myFileUrl
.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
drawable = Drawable.createFromStream(is, null);
is.close();
} catch (Exception e) {
e.printStackTrace();
return null;
}
return drawable;
}
Handler mHandler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message msg) {
if (msg.what == 0x101) {
//tvContent.setText((CharSequence) msg.obj);
if (drawable == null){
bindData();
return false;
}
if (ncontent != null){
tvContent.setText((CharSequence) msg.obj);
tvContent.setClickable(true);
tvContent.setMovementMethod(LinkMovementMethod.getInstance());
}
}
return false;
}
});
private void bindData() {
tvTitle.setText(mInfo.getNtitle());
ncontent = mInfo.getNcontent();
new Thread(new Runnable() {
Message msg = Message.obtain();
@Override
public void run() {
Html.ImageGetter imageGetter=new Html.ImageGetter() {
@Override
public Drawable getDrawable(String source) {
//String source1 = source;
///Content/
if (source.substring(0,8).equals("/Content")){
source = Constant.BASE_URL + source;
}
drawable = getImageFromNetwork(source);
if (drawable != null){
drawable.setBounds(0,0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
}else if (drawable == null){
//bindData();
return null;
}
return drawable;
}
};
//Spanned spanned = Html.fromHtml(ncontent, imageGetter, null);
CharSequence charSequence = Html.fromHtml(ncontent, imageGetter, null);
msg.what = 0x101;
msg.obj = charSequence;
if (mHandler!= null){
mHandler.sendMessage(msg);
}
}
}).start();
toolbarTitle.setText(mInfo.getNtitle());
String nsubtitle = mInfo.getNtitle();
if (nsubtitle.length() > 10){
String nsubtitle_new = nsubtitle.substring(0, 10);
toolbarTitle.setText(nsubtitle_new + "...");
}else{
toolbarTitle.setText(nsubtitle);
}
tvTime.setText(mInfo.getNsendtime());
}
這樣圖片就顯示了;希望大家在閱讀之後多提建議,期待成長;
相關推薦
android富文字 載入帶圖片的html
textView載入帶圖片的html 在android中textView中setText中加入富文字以及webView嵌入url是android互動html最簡單的兩種方式; 最近在專案中涉及到富文字; 當不考慮html中
android 記一次富文字載入之路
文章連結:https://mp.weixin.qq.com/s/69TRkmFL1aNuSqfw4ULMJw 專案中經常涉及到富文字的載入,後臺管理端編輯器生成的一段html 程式碼要渲染到移動端上面,一種方法是前端做成html頁面,放到伺服器上,移動端這邊直接webVie
Android把Glide載入的圖片變為圓形頭像
Android把Glide載入的圖片變為圓形頭像 原圖: 效果圖: 新增依賴: compile 'com.github.bumptech.glide:glide:3.7.0' 程式碼實現: Glide.with(getContext()).load("http://ww
laravel富文字編輯和圖片上傳
---恢復內容開始--- 首先先找到一個適合的編輯器是勝利的一步,選擇wangEditor這個編輯器 地址:http://www.wangeditor.com/ 然後選擇下載,我是通過網上學習的,所以直接選擇的是2.1.23下載 下載後,將dist中的js/css/fonts,放到
android 將文字轉為為圖片
專案介紹: 將android 專案assets中的1.txt文件中的文字轉換成一張圖片 第一步:建立工具類,用於讀取文件,存入一個String陣列, 程式碼如下: package test.com; import java.io.BufferedReader; imp
Android下拉框帶圖片
MainActivity 類 package com.example.android_06; /** * 上課程式碼 */ import android.support.v7.app.AppCompatActivity; import android.os.Bundle; i
富文字編輯器圖片上傳失敗的BUG解決:IndexError:list index out of range
富文字編輯器圖片上傳失敗的BUG解決 問題原因 我們將通過Django上傳的圖片儲存到了FastDFS中,而儲存在FastDFS中的檔名沒有後綴名(.png/.jpg/.jif),而ckeditor在處理上傳的檔名按照有後綴名來處理,所以會出現bug錯誤 解決方法 找到虛擬
Lable 富文字的插入圖片、設定行距、計算高度等
+ (NSMutableAttributedString *)MutableAttributedString:(NSString *)attri andatIndex:(NSInteger)Index andImage:(UIImage *)attchImage andFrame:(
Android關於Glide載入圓形圖片之第一次載入時出現不顯示的問題
使用Glide關鍵程式碼: Glide.with(getActivity()).load(url) .error(R.drawable.he
百度ueditor富文字編輯器插入html程式碼問題
今天下午想把ueditor儲存的html程式碼從資料庫取出來放回到ueditor中編輯,然後就一直放不進去,通過不斷地測試終於成功,接下來我講一下我的解決方法 從後臺取到值後想在js中直接用 UE.getEditor('editor').execComm
summernote富文字編輯器避免html轉義的方法
1、基礎篇使用方法網上很多,可以參考使用手冊2、問題篇Q:提取到編輯器的html,如何存到資料庫?應該使用什麼資料型別?A: VS中是string型別, 資料庫存ntext就好了 因為提取到的html是帶有標籤的,類似<p> <a>等等,包
Android滑動列表載入大量圖片時候的優化
1 正在滾動的時候停止載入圖片2 滾動到頂部和底部的時候,載入圖片3 滑動速度降低到一定速率的時候,載入圖片4 到底部時候載入更多/** * Created by android on 2018/1/9. * * 快速滑動時候,停止載入圖片, 載入更多 */ publi
Android使用WebView載入本地圖片終極大殺招
WebView 主要呼叫三個方法:loadUrl、loadData、loadDataWithBaseURL。 1、loadUrl 直接載入網頁、圖片並顯示。(本地或是網路上的網頁、圖片、gif) 2、loadData 顯示文字與圖片內容
Android利用glide載入圓形圖片,頭像的實現
主要是用到了RoundedBitmapDrawable這個類是Drawable的一個子抽象類 可以實現從檔案路徑,輸入流或bitmap 的物件都可以轉換成圓形,或圓角,就不用使用第三方了,很方便 如
富文字編輯器圖片上傳功能提示falsh版本低請你升級的解決方法
1,最好先檢查下瀏覽器的falsh是否禁用如禁用需開啟 2,安裝官網falsh並重新打卡瀏覽器 falsh禁用會導致很多外掛用不了(圖片上傳外掛,編輯器外掛,視訊播放功能等), 程式碼執行中找不到錯誤,
Android富文字實現不同的文字新增點選事件
如果可以點選的文字位置是固定不變的,可以在String.xml中配置(如:“可以點選的”給“點選”設定點選事件)。 @Override protected void onCreate(Bundle s
bootstrap summernote富文字編輯器圖片上傳乾貨分享
今天做後臺的時候需要一個富文字編輯器元件,由於專案使用的是bootstrap,所以毫不猶豫的用上了summernote富文字編輯器。文件各大大牛已經整理出來了 但是圖片上傳到伺服器這塊比較雜 大部分都是說上傳到伺服器的圖片格式是base64的,但是我使用base64接
bootstrap-wysiwyg中JS控制元件富文字中的圖片由本地上傳到伺服器(阿里雲、七牛、自己的資料庫)
一、我假設你是要儲存到自己的資料庫中(因為上傳到阿里雲、七牛更簡單原理一樣的) 點選插入圖片如下圖: 1、其實你插入的時候不需要做什麼處理一樣也可以插入資料庫的(但是前提你插入的那個欄位必須要求足夠空間比如Mysql你要用LONGTEXT型別,否則是存不下的這樣子前臺獲
Universal-Image-Loader,android-Volley,Picasso、Fresco和Glide五大Android開源元件載入網路圖片的優缺點比較
關於 Fresco Facebook最近推出了一款用於Android應用中展示圖片的強大圖片庫Fresco,它能夠從網路、本地儲存和本地資源中載入圖片。而且,為了節省資料和CPU,它擁有三級快取。 Fresco 是一個強大的圖片載入元件。 Fresco 中設計有一個叫做 image pipeline
【Android】Picasso載入本地圖片如何清理快取cache?
使用Picasso載入SD卡圖片的時候,Picasso也會對該圖片進行快取。所以如果該圖片即使已經變了,Picasso在載入時會仍然使用快取,而不更新圖片。 Picasso快取策略 我們都知道圖片快取使用的是Map鍵值對儲存的,這裡的Key就