我不知道它调用了什么类型的动画,但我想实现它,如下所示。我在iOS中看到了这个动画。
正如您所看到的,句子滑动取消将从左到右动画,就像背后有一盏灯一样。
我不知道该用什么。我尝试了一些类似Alpha的动画,但无法实现。任何人都可以帮助我吗?
答案 0 :(得分:6)
答案 1 :(得分:5)
这是另一个像幻灯片文字效果的IOS,
答案 2 :(得分:4)
使用 Spannable
获得解决方案以下是Thread类,它以100 ms的间隔连续运行。
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();
<强>输出强>
更好的答案将更加赞赏.. :)
答案 3 :(得分:1)
我认为你在谈论微光效应。 Facebook为此制作了图书馆。 它将帮助您从左到右显示更多选项的发光效果。
您可以在那里看到完整的文档。 Shimmer Library
答案 4 :(得分:0)
您有两种方式:
1)使用openGL并使用Shaders来实现此效果。
2)在文本上方创建一个图层,其中包含[透明] [白色] [透明]渐变并为其设置动画。