若該 html 中有圖片時,是否能在 TextView 上顯示呢?答案是可以的…
利用 Html.formHtml 其中一個 Overload 傳入 ImageGetter callback
以下簡單示範繼承 TextView 並在上方顯示包含圖片 URL 的 html 字串…
HtmlTextView 的使用方法如下
HtmlTextView htmlTxtView = new HtmlTextView(this);
String htmlCode = "<img src='http://xxx.xxx.xxx/me.png'/><a href='http://xxx.xxx.xxx'><font color='#FF0000'>左邊有一張圖</font></a>";
htmlTextView.setText(htmlCode);
HtmlTextView 實作
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import android.graphics.drawable.Drawable;
public class HtmlTextView extends TextView
{
public HtmlTextView(Context context)
{
super(context);
}
@Override
public void setText(CharSequence text)
{
setText(String.valueOf(text));
}
public void setText(String html)
{
super.setText(Html.fromHtml(html, getDrawableFromURL, null));
}
private ImageGetter getDrawableFromURL = new Html.ImageGetter()
{
@Override
public Drawable getDrawable(String source)
{
Drawable drawable = null;
try
{
URL url = new URL(source);
URLConnection conn = url.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
drawable = Drawable.createFromStream(is, "url img");
is.close();
// 視情況調整尺寸
//drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
return drawable;
}
catch (Exception e)
{
}
return null;
}
};
}
題外話…記得這個哦…否則沒有連線能力自然抓不到圖片可以顯示…
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
drawable = Drawable.createFromStream(is, "url img");
回覆刪除請問String srcName == "url img"
用途為何??
謝謝賜教
url img 只是興例…指的是該圖片的 URL
回覆刪除