我不知道这种动画叫什么,但我想像下面那样实现它。我在iOS中看到了这个动画。
如您所见,句子"slide to cancel"会从左向右移动,并有一种后面有灯光的感觉。
我不知道该使用什么。我尝试过Alpha等动画,但无法实现。有人能帮帮我吗?
如您所见,句子"slide to cancel"会从左向右移动,并有一种后面有灯光的感觉。
我不知道该使用什么。我尝试过Alpha等动画,但无法实现。有人能帮帮我吗?
通过使用Spannable得到了解决方案。
以下是连续以100毫秒间隔运行的Thread类。
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();
输出
欢迎提供更好的答案.. :)
你有两种方式:
1)使用OpenGL并使用着色器来实现此效果。
2)创建一个图层,其中包含[透明][白色][透明]渐变,并对其进行动画处理。
WebView
中使用。非常感谢您的努力.. :) - Chintan Rathod