Android TextView 使用外部文件

最近一个项目,需要在文字中插入一些图片。通过网上搜索发现TextView可以通过SpannableString和ImageSpan来实现。

自己就马上试了下,没有成功。

因为我是需要使用外部文件的,不是内部资源的drawable。

通过几次尝试,发现是构建ImageSpan方法不对。

若是使用内部资源,可以直接使用构造方法ImageSpan(Drawable),而使用外部图片,需要用构造方法ImageSpan(Context, Bitmap)。

刚开始的时候我就是把Bitmap构建为一个BitmapDrawable再传给ImageSpan(Drawable),才一直无法成功。

以下是示范的代码:

String lMessage = "Hello [smill] world!";

Bitmap lBitmap = BitmapFactory.decodeFile("/mnt/sdcard/img/smill.png");     // 加载外部图片文件

// 注释的方式是不能成功显示图片的

// Drawable lDrawable = new BitmapDrawable(pContext.getResources(), lBitmap);

//  ImageSpan lSpan = new ImageSpan(lDrawable);   

ImageSpan lSpan = new ImageSpan(pContext, lBitmap);

SpannableString pSpannableString = new SpannableString(lMessage);

pSpannableString.setSpan(lSpan, pSatIdx, pEndIdx, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

lTextView.setText(pSpannableString);

posted @ 2012-11-21 09:36  Blue Vienna  阅读(170)  评论(0编辑  收藏  举报