为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的某部分进行选择,将选择部分特殊显示

 

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值