private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
CharSequence charSequence = (CharSequence) msg.obj;
if (charSequence != null) {
contenttextview.setText(charSequence);
contenttextview.setMovementMethod(LinkMovementMethod.getInstance());
}
break;
default:
break;
}
}
};
private void setActivityContent(final String activityContent) {
new Thread(new Runnable() {
@Override
public void run() {
Html.ImageGetter imageGetter = new Html.ImageGetter() {
@Override
public Drawable getDrawable(String source) {
Drawable drawable;
drawable = getImageNetwork(source);
if (drawable != null) {
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
} else if (drawable == null) {
return null;
}
return drawable;
}
};
CharSequence charSequence = Html.fromHtml(activityContent.trim(), imageGetter, null);
Message ms = Message.obtain();
ms.what = 1;
ms.obj = charSequence;
mHandler.sendMessage(ms);
}
}).start();
}
public static Drawable getImageNetwork(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();
// 在这一步最好先将图片进行压缩,避免消耗内存过多
Bitmap bitmap = BitmapFactory.decodeStream(is);
drawable = new BitmapDrawable(bitmap);
is.close();
} catch (Exception e) {
e.printStackTrace();
}
return drawable;
}
网友评论