Android TextView里直接显示图片的三种方法
2015-12-27 10:40
519 查看
方法一:重写TextView的onDraw方法,也挺直观就是不太好控制显示完图片后再显示字体所占空间的位置关系。一般假设字体是在图片上重叠的推荐这样写。时间关系,这个不付源代码了。
方法二:利用TextView支持部分Html的特性。直接用api赋图片。代码例如以下:
注意以下这句话:String html = "<img src='" + R.drawable.circle + "'/>"; img src = 后面除了"之外还有个'号。假设去掉这两个'号就变成了String html = "<img src=" + R.drawable.circle +"/>"; 是会报错的。由于src直接等于了一个数字。是解析不了的。
方法三: 用ImageSpan和SpannableString。代码例如以下:
这样的方法是最直观的。通过Bitmap或Drawable对象得到ImageSpan对象。再新建SpannableString对象,设置span的内容就ok了。事实上SpannableString非常强大,如在EditText里将部分文本高亮、下划线、斜体、插入表情都能够用它,详见链接:/article/3746733.html
http://blog.csdn.net/rockcoding/article/details/7231756
下为效果图,上下两幅图分别相应另外一种和第三种方法:
方法二:利用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里将部分文本高亮、下划线、斜体、插入表情都能够用它,详见链接:/article/3746733.html
http://blog.csdn.net/rockcoding/article/details/7231756
下为效果图,上下两幅图分别相应另外一种和第三种方法:
相关文章推荐
- android开发java工具包的添加方式
- android-xml文件布局
- Android 开发之 Android 开发的起步
- Android手机适配,手机尺寸、px、dpi、dp、sp详解
- android几个使用的判定代码
- android几个实用的判定代码
- android的Intent中startActivityForResult来回传数据
- Android模拟器设置竖屏
- android美化对话框
- Android对话框显示后自动消失
- android圆角View实现及不同版本号这间的兼容
- ArcGIS For Android ExportTileCache应用
- Android AutoLayout万能的适配布局
- Android 屏幕适配
- android 制作9.png图片
- android开源数据绑定框架( android-databinding )的插件
- android 之开源控件roundedimageview
- Android Activity之间通信
- Android selector属性
- Android 实现登录注册功能