
有没有办法动画文本颜色变化(从任何颜色变为白色)?
我想出的唯一变体是将两个文本视图(具有相同的文本)放在一个地方,然后淡化顶部的一个,因此底部的一个(具有白色)将变得可见.
附:我废弃了2个TextVIEws的变体,因为它看起来很奇怪(边缘不平滑,因为我在屏幕上有很多这样的元素,它真的落后于滚动).我做了什么,是一个疯狂的黑客,使用Thread和setTextcolor(也强制重绘textvIEw)来动画.
由于我只需要2种颜色变化(从红色到白色,从绿色到白色),我硬编码了它们之间的值和所有过渡颜色.所以这是它的样子:
public class BlinkingTextVIEw extends TextVIEw {public BlinkingTextVIEw(Context context, AttributeSet attrs) { super(context, attrs);}public voID animateBlink(final boolean red) { if (animator != null) { animator.drop(); } animator = new Animator(this, red); animator.start();}public voID clearBlinkAnimation() { if (animator != null) { animator.drop(); }}private Animator animator;private final static class Animator extends Thread { public Animator(final TextVIEw textVIEw, final boolean red) { this.textVIEw = textVIEw; if (red) { SET_TO_USE = RED; } else { SET_TO_USE = GREEN; } } private TextVIEw textVIEw; private final int[] SET_TO_USE; private final static int[] RED = { -2142396, -2008754, -1874854, -1740697, -1540490, -1405563, -1205099, -1004634, -804170, -669243, -469036, -334879, -200979, -67337, -1 }; private final static int[] GREEN = { -6959821, -6565826, -6106293, -5646758, -5055894, -4530309, -3939444, -3283042, -2692177, -2166592, -1575728, -1116193, -656660, -262665, -1 }; private boolean stop; @OverrIDe public voID run() { int i = 0; while (i < 15) { if (stop) break; final int color = SET_TO_USE[i]; if (stop) break; textVIEw.post(new Runnable() { @OverrIDe public voID run() { if (!stop) { textVIEw.setTextcolor(color); } } }); if (stop) break; i++; if (stop) break; try { Thread.sleep(66); } catch (InterruptedException e) {} if (stop) break; } } public voID drop() { stop = true; }}}解决方法:
虽然我没有找到一个完全不同的方法,但我尝试使用TextSwitcher(使用淡入淡出动画)来创建颜色变化效果. TextSwitcher是一种VIEwSwitcher,它可以在两个(内部)TextVIEw之间进行动画制作.您是否在不知不觉中手动实施了相同的系统? ;)它为您管理更多的过程,因此您可能会发现它更容易使用(特别是如果您想尝试更多涉及的动画).我会创建TextSwitcher的新子类和一些方法,例如setColour()可以设置新颜色然后触发动画.然后可以将动画代码移动到主应用程序之外.
>确保在放入切换台的两个TextVIEw上保留一个句柄
>更改其他TextVIEw的颜色并调用setText()以在它们之间设置动画
如果您已经在使用VIEwSwitcher,那么我认为没有更简单的方法来实现它.
总结以上是内存溢出为你收集整理的android – 文本颜色动画全部内容,希望文章能够帮你解决android – 文本颜色动画所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)