(原创)代码动态改变某些textview文本颜色及其大小的方式

来源:互联网 发布:淘宝网zara 编辑:程序博客网 时间:2024/06/07 02:39

(原创)代码动态改变某些textview文本颜色及其大小的方式

1.以下示例将Hello Word!中的ell改变红色并改变大小:

效果图:

package com.example.lainanzhou.textviewdemo;import android.app.Activity;import android.content.res.ColorStateList;import android.os.Bundle;import android.text.SpannableString;import android.text.Spanned;import android.text.style.TextAppearanceSpan;import android.widget.TextView;public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        TextView textView = (TextView) findViewById(R.id.tv);        String str = textView.getText().toString().trim();//"Hello World!":下面将前面Hello中的ell变红        ColorStateList colors = ColorStateList.valueOf(0xffff0000);//转换相应的color值,这里是红色值        SpannableString spanBuilder = new SpannableString(str);        /**         * 参数:1.变化字体参数(1.字体类型;2.字体样式;3.需要变化字体大小;4.颜色值;5.颜色关联状态)         *      2.变化起始位置(含)         *      3.变化结束位置(不含)~例如Hello中ell是从1角标开始到4结束,不含4角标在内         *      4.标记         */        spanBuilder.setSpan(new TextAppearanceSpan(null, 0, dip2px(24), colors, null),                1, 4, Spanned.SPAN_EXCLUSIVE_INCLUSIVE);        textView.setText(spanBuilder);    }    private int dip2px(float dipValue) {        final float scale = getResources().getDisplayMetrics().density;        return (int) (dipValue * scale + 0.5f);    }}

源码下载地址:点击打开链接
0 0