(原创)代码动态改变某些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);
}
}
源码下载地址: 点击打开链接