为textview设置span

span,翻译是范围的意思? 反正就是为一段文本设置特殊效果。如超链接、带背景等。

基本语法

        TextView text1 = (TextView) findViewById(R.id.text1);
        SpannableString  span1 = new SpannableString("好好学习,天天向上");
        span1.setSpan(new ClickableSpan() {
			@Override
			public void onClick(View widget) {
				System.out.println(1111111);
			}
		}, 0, span1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        
        text1.setText(span1);
        text1.setFocusable(true);
        text1.setMovementMethod(LinkMovementMethod.getInstance());
        
        
        TextView text2 = (TextView) findViewById(R.id.text2);
        SpannableStringBuilder span2 = new SpannableStringBuilder("坚持就是胜利");
        span2.setSpan(new BackgroundColorSpan(Color.YELLOW), 0, 3, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
        text2.setText(span2);
public void onClick_RandomFace(View view)  
{  
            //  随机产生1至9的整数  
    int randomId = 1 + new Random().nextInt(9);  
    try  
    {  
        //  根据随机产生的1至9的整数从R.drawable类中获得相应资源ID(静态变量)的Field对象  
        Field field = R.drawable.class.getDeclaredField("face" + randomId);  
        //  获得资源ID的值,也就是静态变量的值  
        int resourceId = Integer.parseInt(field.get(null).toString());  
        //  根据资源ID获得资源图像的Bitmap对象  
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), resourceId);  
        //  根据Bitmap对象创建ImageSpan对象  
        ImageSpan imageSpan = new ImageSpan(this, bitmap);  
        //  创建一个SpannableString对象,以便插入用ImageSpan对象封装的图像  
        SpannableString spannableString = new SpannableString("face");  
        //  用ImageSpan对象替换face  
        spannableString.setSpan(imageSpan, 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
        //  将随机获得的图像追加到EditText控件的最后  
        edittext.append(spannableString);  
    }  
    catch (Exception e)  
    {  
    }  
}  
 
  

用处:

数据库中有多个数据时,输入部分数据,我们可将匹配的数据查出,并将匹配部分以特殊显示

对textview的某部分进行选择,将选择部分特殊显示

 
  
 
 

你可能感兴趣的:(为textview设置span)