基于后台数据动态修改TextView的字体颜色(内附跑码效果Te
2019-11-25 本文已影响0人
Dale_Dawson
最开始是有一个无限循环跑马灯的需求,简言之就是字幕滚动效果,跑起来之后突然又问字体颜色可不可以动态修改?于是有了下文.....
动态修改TextView的颜色值textColor
- 后台直接可以返回一个String类型的颜色值
如
#99FFFFFF
#FFFFFF
带透明度和不带透明度的都是可以的
- 安卓端的代码
int color = Color.parseColor("#99FFFFFF"); //将String类型的color转为int类型的color值
textview.setTextColor(color); //将int类型的color值设置给textview
遇到的坑
查阅资料是发现textview.setTextColor(0x99FFFFFF)代码这样写是可以的,
通知后台返回了一个"0x99FFFFFF",然后通过
Integer.valueOf();
Integer.decode()
这两种方法将String类型的值转化成int,直接就报红了
附上永久跑码灯效果的TextView代码
public class ScrollingTextView extends TextView {
public ScrollingTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public ScrollingTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ScrollingTextView(Context context) {
super(context);
}
@Override
protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
if (focused)
super.onFocusChanged(focused, direction, previouslyFocusedRect);
}
@Override
public void onWindowFocusChanged(boolean focused) {
if (focused)
super.onWindowFocusChanged(focused);
}
@Override
public boolean isFocused() {
return true;
}
}