自动变色自定义View和自定义关键字变色TextView
来源:互联网 发布:ssh登录权限管理源码 编辑:程序博客网 时间:2024/05/19 23:16
让TextView中有一部分变色很多种方法:
1.
textview.setText(Html.fromHtml("<font color=\'#858585\'>后面文字颜色属性不一样:</font><font color=\'#f02387\'><U>变色文字</U></font>"));
2.
String wholeStr = "后面的颜色将要改变哈哈哈这是要改变的颜色";
StringFormatUtil spanStr = new StringFormatUtil(this, wholeStr, "这是要改变的颜色", R.color.blue).fillColor();
textview.setText(spanStr.getResult());
需要用到StringFormatUtil类:
源码:
public class StringFormatUtil {
private SpannableStringBuilder spBuilder;
private String wholeStr, highlightStr;
private Context mContext;
private int color;
private int start = 0, end = 0;
/**
*
* @param context
* @param wholeStr 全部文字
* @param highlightStr 改变颜色的文字
* @param color 颜色
*/
public StringFormatUtil(Context context,String wholeStr,String highlightStr,int color){
this.mContext=context;
this.wholeStr=wholeStr;
this.highlightStr=highlightStr;
this.color=color;
}
public StringFormatUtil fillColor(){
if(!TextUtils.isEmpty(wholeStr)&&!TextUtils.isEmpty(highlightStr)){
if(wholeStr.contains(highlightStr)){
/*
* 返回highlightStr字符串wholeStr字符串中第一次出现处的索引。
*/
start=wholeStr.indexOf(highlightStr);
end=start+highlightStr.length();
}else{
return null;
}
}else{
return null;
}
spBuilder=new SpannableStringBuilder(wholeStr);
color=mContext.getResources().getColor(color);
CharacterStyle charaStyle=new ForegroundColorSpan(color);
spBuilder.setSpan(charaStyle, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
return this;
}
public SpannableStringBuilder getResult(){
if (spBuilder != null) {
return spBuilder;
}
return null;
}
}
自定义变色(也可点击变色)View:
private int Void_SetColor_SetTime;
private int[] color;
private int index = 0;
private Paint paint;
private int time = 1000;
super(context, attrs, defStyle);
init();
}
this(context, attrs, 0);
}
this(context, null);
}
* 初始化
*/
private void init() {
setOnClickListener(ColorView.this);
paint = new Paint();
handler.sendEmptyMessage(0);
this.color = color;
}
this.time = time;
}
canvas.drawRect(0, 0, getWidth(), getHeight(), paint);
};
public void handleMessage(android.os.Message msg) {
if (index > color.length - 1) {
index = 0;
}
paint.setColor(color[index]);
index++;
invalidate();
handler.sendEmptyMessageDelayed(0, time);// time
};
};
public void onClick(View v) {
if (index > color.length - 1) {
index = 0;
}
paint.setColor(color[index]);
index++;
invalidate();
}
private String count;
private String texts;
private int color;
super(context, attrs);
// init();
}
List<Integer> sTextsStartList = new ArrayList<Integer>();
for(int i = 0; i < specifiedTexts.length(); i++) {
for(int j = 0; j < text.length(); j++) {
if (text.charAt(j) == specifiedTexts.charAt(i)) {
sTextsStartList.add(j);
}
}
for(Integer i : sTextsStartList) {
styledText.setSpan(new ForegroundColorSpan(color), i, i + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
List<Integer> sTextsStartList = new ArrayList<Integer>();
String temp = text;
int lengthFront = 0;
int start = -1;
do {
start = temp.indexOf(specifiedTexts);
start = start + lengthFront;
sTextsStartList.add(start);
lengthFront = start + sTextLength;
temp = text.substring(lengthFront);
}
for(Integer i : sTextsStartList) {
styledText.setSpan(new ForegroundColorSpan(color), i, i + sTextLength, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
- 自动变色自定义View和自定义关键字变色TextView
- 自动变色自定义View和自定义关键字变色TextView
- 自定义圆角点击变色TextView
- android自定义view实现字体变色
- 文字逐渐变色(自定义View)
- 自定义View 箭头 变色 加速 减速
- Android自定义view-玩转字体变色
- 自定义 圆环加速变色
- TextView自定义省略号、部分文字变色、部分文字点击
- android 点击变色的两种情况、textview点击变色以及自定义checkbox
- Android自定义View——滑动变色指示器
- 自定义View圆形加载器、变色、加速减速、开始暂停
- 自定义View带箭头的圆环,加速 减速 暂停 变色
- 自定义View带箭头的圆环,加速 减速 暂停 变色
- 实现关键字的自动链接和自动变色
- CodeMirror实现MySql关键字的变色和自动提示
- Android自定义字体变色控件
- 关键字变色
- 编译不完全导致调试时无法查看局部变量的值
- 金融类app各种数值的精确计算问题
- ios基础之调试篇
- struts拦截器
- weblogic 服务不响应java.net.SocketTimeoutException: Read timed out
- 自动变色自定义View和自定义关键字变色TextView
- ssoj 2511 后缀数组
- 深入浅出 消息队列 ActiveMQ
- 安装VMWare tools,以及解决安装后/mnt中有hgfs但没共享文件的方法
- 关于Manifest merger failed
- iPad Air/Air2/iPhone6 Plus跑分对比
- tomcat 加载一个类两次
- Android-Activity 启动模式解析
- RabbitMQ基础概念详细介绍