TextView和SpannableString实现图文混排的效果

原创 2015年11月18日 22:35:32

使用SpannableString和TextView可以实现一个图文混排的效果

实现代码:

Activity_Main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.studyTextView.MainActivity" >

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />

</RelativeLayout>

MainActivity.java

package com.studyTextView;

import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.text.style.ImageSpan;
import android.widget.TextView;

public class MainActivity extends Activity {
	private TextView textView1;
	private SpannableString msb;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		textView1 = (TextView) findViewById(R.id.textView);
		 msb = new SpannableString("\b玫瑰玫瑰");
		 textImage(textView1,msb);
		 
	}
	
	public void textImage(TextView mtextView,SpannableString msb){  
		Drawable drawable = getResources().getDrawable(R.drawable.daohang); //daohang为drawable下图片名
		drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
		
		msb.setSpan(new ImageSpan(drawable), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
		mtextView.setText(msb);
		mtextView.setMovementMethod(LinkMovementMethod.getInstance());
	}

}

drawable.getIntrinsicWidth()和<span style="font-family: Arial, Helvetica, sans-serif;">drawable.getIntrinsicHeight()获取屏幕的大小</span>
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;">运行结果:</span>
</span>

版权声明:本文为博主原创文章,未经博主允许不得转载。

SpannableString实现图文混排和多种炫酷样式的TextView

之前项目中有一个类似贴吧的圈子,需要实现图文混排和一些特殊样式的文本,后来发现一篇不错的文章,看了之后感觉受益良多,推荐给大家: 用SpannableString打造绚丽多彩的文本显示效果 为...
  • zhangxmu
  • zhangxmu
  • 2016年12月13日 09:22
  • 1859

在ListView中的Text添加spannableString 点击事件与ListView的OnItemClick事件冲突的解决办法

http://my.oschina.net/djone/blog/145057 一、前提和解决 做了个界面,在listview的itemview里 要@,要超链接,要话题跳...
  • wjyyxzzjnws
  • wjyyxzzjnws
  • 2015年08月11日 18:55
  • 1328

TextView图文混排图片被截断的问题以及Android省略号只有一个点的问题

TextView中实现图文混排主要采用的是SpannableStringBuilder、ImageSpan、正则表达式协同完成,具体的实现,自己去百度吧。 今天主要想说的是在图文混排的时候,如果Te...
  • lobee
  • lobee
  • 2014年02月26日 16:09
  • 2599

TextView实现图文混排的总结

1。通过设置drawableLeft,drawableRight,drawableTop,drawableBottom等属性控制图片的显示 这种方式是最简单的方式,但是也有一定的局限性。如: 1:...
  • yuminfeng728
  • yuminfeng728
  • 2016年11月20日 17:25
  • 1053

SpannableString--textview显示不同的颜色、样式

SpannableString TextView是用来显示文本的,有时需要给TextView中的个别字设置为超链接,或者设置个别字的颜色、字体等,那就需要用到Spannable对象,可以...
  • tlc0211
  • tlc0211
  • 2013年02月27日 14:41
  • 4834

android:如何在TextView实现图文混排

我们通常在TextView文本中设置文字。可是如何设置图文混排呢? 我就在这里写一个例子 。我们需要用到一点简单的HTML知识...
  • su20145104009
  • su20145104009
  • 2016年02月15日 13:42
  • 7491

android TextView 使用SpannableString数据源时,TextView的ellipsize失效

这儿遇到个问题,就是TextView单行超过长度使用“...”结束,如果是一般的String类型的数据,就可以直接用ellipsize属性加上singleline就可以了,但是如果数据源是Spanna...
  • htyxz8802
  • htyxz8802
  • 2015年12月23日 16:27
  • 2599

Android中TextView通过SpannableString设置字体、大小、颜色、样式、超级链接

直接贴代码,不知道怎么使用的看注释吧。
  • lukejun1988
  • lukejun1988
  • 2014年05月15日 15:20
  • 10597

textview使用SpannableString设置文字样式后,排版参差不齐的解决办法

如果你的textview使用了SpannableString设置文字的样式,但是设置发现后textview的排版参差不齐,那么请参照以下解决办法,这是我从ITEYE上复制过来的一篇文章,供大家参考,以...
  • stone_2323
  • stone_2323
  • 2014年12月10日 16:34
  • 2434

SpannableString实现同一段文字不同的效果

通常我们由于各种原因和需求,需要在一个TextView中的文字完成不同的效果,例如部分文字颜色不同、部分文字有点击时间、部分文字大小不同等等,可以用SpannableString、SpannableS...
  • a35100535
  • a35100535
  • 2016年09月12日 20:14
  • 519
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TextView和SpannableString实现图文混排的效果
举报原因:
原因补充:

(最多只允许输入30个字)