基于后台数据动态修改TextView的字体颜色(内附跑码效果Te

2019-11-25  本文已影响0人  Dale_Dawson

最开始是有一个无限循环跑马灯的需求,简言之就是字幕滚动效果,跑起来之后突然又问字体颜色可不可以动态修改?于是有了下文.....

动态修改TextView的颜色值textColor

  1. 后台直接可以返回一个String类型的颜色值
#99FFFFFF
#FFFFFF

带透明度和不带透明度的都是可以的

  1. 安卓端的代码
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;
    }
}

有用自取

上一篇下一篇

猜你喜欢

热点阅读