And*_*bel 47 animation android
我有一段文字,当点击一个按钮时,我希望该文本淡出,更改为其他文本,然后淡入.我有一些代码,但它不会淡出动画只是淡入.
final TextView mSwitcher = (TextView) findViewById(R.id.bookContent);
mSwitcher.setText("old text");
final Animation in = new AlphaAnimation(0.0f, 1.0f);
in.setDuration(3000);
final Animation out = new AlphaAnimation(1.0f, 0.0f);
out.setDuration(3000);
Button moveOn = (Button) findViewById(R.id.moveOn);
moveOn.setOnClickListener( new OnClickListener() {
public void onClick(View v) {
mSwitcher.startAnimation(out);
mSwitcher.setText("new text");
mSwitcher.startAnimation(in);
}
});
Run Code Online (Sandbox Code Playgroud)
ebo*_*oix 80
在将动画设置为out之后,您似乎正在设置动画.这使得只有"in"动画才能工作.
要使第二个动画在第一个动画之后立即开始,您可以为第一个动画添加一个侦听器:
out.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationEnd(Animation animation) {
mSwitcher.setText("New Text");
mSwitcher.startAnimation(in);
}
});
Run Code Online (Sandbox Code Playgroud)
然后,在您的onClick()方法中:
public void onClick(View v) {
mSwitcher.startAnimation(out);
}
Run Code Online (Sandbox Code Playgroud)
这应该够了吧.
另一种方法是使用AnimationSet.
final Animation in = new AlphaAnimation(0.0f, 1.0f);
in.setDuration(3000);
final Animation out = new AlphaAnimation(1.0f, 0.0f);
out.setDuration(3000);
AnimationSet as = new AnimationSet(true);
as.addAnimation(out);
in.setStartOffset(3000);
as.addAnimation(in);
Run Code Online (Sandbox Code Playgroud)
然后,开始out,而不是开始as.
我希望这有帮助!
| 归档时间: |
|
| 查看次数: |
45917 次 |
| 最近记录: |