text.fromHtml 加载图片, 及点击图片放大

工作中碰到需要在textView中显示图片。 及图片放大功能。


//设置mText支持Html 格式的标签, locImageGetter作为Html.Getter的实现类  处理图片

mText.setText(Html.fromHtml(htmlSource,locImgGetter,null);

mText.setMovementMethod(ScrollingMovementMethod.getInstance()); //textView 滚动

//Html.Getter 实现类

ImageGetter locImgGetter = new Html.ImageGetter(){

 @Override

 public Drawable getDrawable(String source){

  Drawable drawable = null;

 try{

//本类中的图片保存在本地中

 drawable = Drawable.createFromPath(source);

if(drawable !=null){
                    int macWidth=this.getWindowManager().getDefaultDisplay().getWidth();
                    int intrWid = drawable.getIntrinsicWidth() > macWidth/2  ? drawable.getIntrinsicWidth() : macWidth/2;
                    int width = macWidth < intrWid ? macWidth : intrWid;
                    int height= drawable.getIntrinsicHeight() * width/ drawable.getIntrinsicWidth();
                    //设置图片位置.
                   drawable.setBounds(3, 3, width-5, height);
                }

 }catch(Exception e){

  e.printStackTrace();

return null;

 }

 return drawable;

 }

//对该mText设置监听,

}

mText.setOnClickListener(textListener);

private OnClickListener textListener = new OnClickListener(){

@Override

public void onClick(View v){

Spannable s=(Spannable)mText.getText();

mText.setMovementMethod(LinkMovementMethod.getInstance());

ImageSpan [] imageSpans=s.getSpans(0,s.length(),ImageSpan.class);

for(final ImageSpan span: imageSpans){

final String image_src=span.getSource();

final int start = s.getSpanStart(span);

final int end = s.getSpanEnd(span);

ClickableSpan click_span = new ClickableSpan(){

  @Override

 public void onClick(View widget){

// 当前点击的图片 资源路径

 Toast.makeText(context, image_src, Toast.LENGTH_SHORT).show();

 }

}

};

ClickableSpan [] click_span=s.getSpans(start,end,ClickableSpan.class);

if(click_spans.length !=0){

for(ClickableSpan c_span : click_spans){

   s.removeSpan(c_span);

}

}

s.setSpan(click_span,start,end,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

}


以上是根据一些技术大牛的博文,总结并运用到自己的实际项目中。

参数文献:

http://stackoverflow.com/questions/16179285/html-imagegetter-textview

http://www.eoeandroid.com/thread-271554-1-13.html?_dsign=1014e8ef


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值