Android TextView里直接显示图片的三种方法

Android TextView里直接显示图片的三种方法方法一 重写 TextView 的 onDraw 方法 也挺直观就是不太好控制显示完图片后再显示字体所占空间的位置关系 一般如果字体是在图片上重叠的推荐这样写 时间关系 这个不付源码了 方法二 利用 TextView 支持部分 Html 的特性 直接用 api 赋图片 代码如下 第一种方法在 TextView 中显示图片 Stringhtml ImageGetteri ne

方法一:重写TextView的onDraw方法,也挺直观就是不太好控制显示完图片后再显示字体所占空间的位置关系。一般如果字体是在图片上重叠的推荐这样写。时间关系,这个不付源码了。


方法二:利用TextView支持部分Html的特性,直接用api赋图片。代码如下:

//第一种方法在TextView中显示图片 String html = "<img src='" + R.drawable.circle + "'/>"; ImageGetter imgGetter = new ImageGetter() { @Override public Drawable getDrawable(String source) { // TODO Auto-generated method stub int id = Integer.parseInt(source); Drawable d = getResources().getDrawable(id); d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight()); return d; } }; CharSequence charSequence = Html.fromHtml(html, imgGetter, null); textView1.setText(charSequence); textView1.append("您好 ");


注意下面这句话:String html = “<img src='” + R.drawable.circle + “‘/>”; img src = 后面除了”之外还有个’号。如果去掉这两个’号就变成了String html = “<img src=” + R.drawable.circle +”/>”; 是会报错的,因为src直接等于了一个数字,是解析不了的。


方法三: 用ImageSpan和SpannableString,代码如下:

//第2种方法在TextView中显示图片 Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.hanguo); ImageSpan imgSpan = new ImageSpan(this, b); SpannableString spanString = new SpannableString("icon"); spanString.setSpan(imgSpan, 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); textView2.setText(spanString); textView2.append("中新网4月27日电 据央视报道,韩国国务总理郑烘原于当地时间27日上午召开发布会,称自己应对韩国“岁月号”沉船事件负责,宣布辞职,并希望家属能原谅及理解他的决定。");


这种方法是最直观的,通过Bitmap或Drawable对象得到ImageSpan对象,再新建SpannableString对象,设置span的内容就ok了。其实SpannableString很强大,如在EditText里将部分文本高亮、下划线、斜体、插入表情都可以用它,详见链接:http://gundumw100.iteye.com/blog/  

http://blog.csdn.net/rockcoding/article/details/

下为效果图,上下两幅图分别对应第二种和第三种方法:

Android TextView里直接显示图片的三种方法



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232464.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号