我不知道它叫什么类型的动画,但我想实现它,如下所示。我在iOS中看到了那个动画。
如您所见,要取消的句子幻灯片将从左到右动画,就像它后面有光一样。
我不知道该用什么。我尝试了一些像 Alpha 这样的动画,但无法实现。谁能帮我?
这是另一个IOS类似幻灯片文字效果,
通过使用Spannable得到解决方案
以下是 Thread 类,它以 100 毫秒的间隔连续运行。
class MyThread extends Thread {
//used for stopping thread
boolean flag;
//init flag to true so that method run continuously
public MyThread() {
flag = true;
}
//set flag false, if want to stop this thread
public void setFlag(boolean flag) {
this.flag = flag;
}
@Override
public void run() {
super.run();
while (flag) {
try {
Thread.sleep(intervalMiliSeconds);
runOnUiThread(new Runnable() {
@Override
public void run() {
Spannable spn = new SpannableString(txtView
.getText().toString());
spn.setSpan(new ForegroundColorSpan(Color.WHITE),
startPosition, endPosition,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
txtView.setText(spn);
startPosition++;
endPosition++;
endPosition %= (lengthOfString + charGaps);
startPosition %= lengthOfString;
if (startPosition == 0) {
endPosition = charGaps;
startPosition = 0;
}
if (endPosition > lengthOfString) {
endPosition = lengthOfString;
}
Log.d("Home", "Start : " + startPosition + " End : " + endPosition);
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
要使用上面的代码,请使用以下实现。
TextView txtView = (TextView) findViewById(R.id.txtView);
int charGaps = 3;
int startPosition = 0;
int endPosition = charGaps;
int lengthOfString = txtView.getText().length();
MyThread thread = new MyThread();
thread.start();
输出
更好的答案将不胜感激.. :)
我想你在谈论微光效应。Facebook为此制作了图书馆。它将帮助您通过更多选项从左到右显示发光效果。
你可以在那里看到完整的文档。 微光图书馆
你有两种方法:
1)使用openGL并使用Shaders来制作这个效果。
2)在文本上方创建一个包含[透明][白色][透明]渐变的图层并为其设置动画。