textview中的android闪烁字符

标签 android textview android-animation

我可以将 TextView 中的单个字符设置为闪烁吗?

使用“spannable”我可以设置颜色、字体粗细等,但我没有发现任何关于闪烁的信息。

“动画”AFAIK 适用于整个 View 。

有什么建议吗?

最佳答案

您可以开始使用该自定义类:

class FCS extends ForegroundColorSpan implements TimeAnimator.TimeListener {

    private TextView tv;
    private int[] colors;
    private int color;
    TimeAnimator animator;
    ArgbEvaluator evaluator;

    public FCS(TextView tv, int[] colors) {
        super(colors[0]);
        this.tv = tv;
        this.colors = colors;
        animator = new TimeAnimator();
        animator.setTimeListener(this);
        evaluator = new ArgbEvaluator();
        animator.start();
    }

    @Override
    public void updateDrawState(TextPaint ds) {
        ds.setColor(color);
    }

    @Override
    public void onTimeUpdate(TimeAnimator animation, long totalTime, long deltaTime) {
        float sin = (float) (Math.sin(Math.PI * totalTime / 1000f));
        float fraction = sin * sin;
//        float fraction = (float) (-Math.cos(2*Math.PI * totalTime / 1000f) + 1) / 2f;
        color = (int) evaluator.evaluate(fraction, colors[0], colors[1]);
        tv.invalidate();
        if (totalTime > 20000) {
            animator.end();
        }
    }
}

测试代码(放在Activity#onCreate方法中):

TextView tv = new TextView(this);
tv.setTextSize(40);
int[] colors = {
        tv.getCurrentTextColor(),
        Color.RED,
};
SpannableStringBuilder ssb = new SpannableStringBuilder();
ssb.append("Poeta de ");
int start = ssb.length();
ssb.append("magnum stella, dignus sectam!");
ssb.setSpan(new FCS(tv, colors), start, start+1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(ssb);
setContentView(tv);

关于textview中的android闪烁字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38813869/

相关文章:

android - 如何在同一个ListView中创建两个不同的LinearLayout?

java - 许可 Android Apache Commons Math

android - 增加 ListFragment 内置的空 TextView 大小

java - 如何在 Android 的 Receiver/Service 中获取 CheckBoxPreference 值?

android - 更新小部件中的 textView

android - ImageView 上的 TranslateAnimation (Android)

ANDROID:抽屉导航菜单项共享元素转换

android - 在 GOOGLE TV ViewFlipper 中看不到任何页面动画

android - 如何在 Android 应用中实现 Admob AdView

java - Android 中 makeHttpRequest 调用中的 json 为 null