Android TextView 使用外部文件

半城伤御伤魂 提交于 2019-11-28 02:38:34

最近一个项目,需要在文字中插入一些图片。通过网上搜索发现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);

转载于:https://www.cnblogs.com/BlueVienna/archive/2012/11/21/2780145.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!