1.适配器中加载网络图片:
final
Html.ImageGetter imageGetter =
new
Html.ImageGetter() {
public
Drawable getDrawable(String source) {
Drawable drawable =
null
;
int
rId = Integer.parseInt(source);
drawable = mContext.getResources().getDrawable(rId);
drawable.setBounds(
0
,
0
, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
return
drawable;};
};
String zese =
"<font color='#9B9B9B'>"
+bbs_tabu.getTypehtml()+
"</font>"
+bbs_tabu.getSubject();
tc.tx_bbs_all.setText(Html.fromHtml(zese,imageGetter,
null
));
2.适配器中加载本地图片,根据网络返回数据来判断
if
(bbs_tabu.getShowcommendicon()==
1
)
{
img_jian=
"<img src=\""
+R.drawable.recommend+
"\"/>"
;
}
3.如果想要网络图片和本地图片进行叠加:
img_jian+=zese;
img_ding+=img_jian;
最后还是要进行叠加:tc.tx_bbs_all.setText(Html.fromHtml(zese,imageGetter,null));
4.如果有多张网络图片,而又出现没有加便签的情况下,或者只有纯文本<img src=""/>情况下,
首先是一个引用的MyTagHanler.class
public
class
MyTagHandler
implements
TagHandler {
private
Context context;
public
MyTagHandler(Context context) {
this
.context = context;
}
@Override
public
void
handleTag(
boolean
opening, String tag, Editable output,
XMLReader xmlReader) {
// TODO Auto-generated method stub
// 处理标签<img>
if
(tag.toLowerCase().equals(
"img"
)) {
// 获取长度
int
len = output.length();
// 获取图片地址
ImageSpan[] images = output.getSpans(len-
1
, len, ImageSpan.
class
);
String imgURL = images[
0
].getSource();
// 使图片可点击并监听点击事件
output.setSpan(
new
ImageClick(context, imgURL), len-
1
, len, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
private
class
ImageClick
extends
ClickableSpan {
private
String url;
private
Context context;
public
ImageClick(Context context, String url) {
this
.context = context;
this
.url = url;
}
@Override
public
void
onClick(View widget) {
// TODO Auto-generated method stub
// 将图片URL转化为本地路径,可以将图片处理类里的图片处理过程写为一个方法,方便调用
String imageName = Common.md5(url);
String sdcardPath = Environment.getExternalStorageDirectory().toString();
// 获取SDCARD的路径
//获取图片后缀名
String[] ss = url.split(
"\\."
);
String ext = ss[ss.length -
1
];
// 最终图片保持的地址
String savePath = sdcardPath +
"/"
+ context.getPackageName() +
"/"
+ imageName +
"."
+ ext;
File file =
new
File(savePath);
if
(file.exists()) {
// 处理点击事件,开启一个新的activity来处理显示图片
Intent intent =
new
Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file),
"image/*"
);
context.startActivity(intent);
}
}
}
}
//自定义handler处理,并且可以对图片的查看更符合用户的体验
Spanned spanned = Html.fromHtml(b_bean.getMessage(),
new
MyImageGetter(context, viewthread_message),
new
MyTagHandler(context));
viewthread_message.setText(spanned);
viewthread_message.setMovementMethod(LinkMovementMethod.getInstance());