Pau*_*ros 82 android android-animation android-fragments
我在视图中有一个淡出动画(在片段内),每次动画发生时,视图结束后再次重绘.我发现了一项工作view.SetVisibility(View.GONE).但它并不等待动画完成.我想在动画完成后才执行此setVisibility代码.最好的方法是什么?
ble*_*enm 163
您可以将动画侦听器添加到动画对象中
anim.setAnimationListener(new Animation.AnimationListener(){
@Override
public void onAnimationStart(Animation arg0) {
}
@Override
public void onAnimationRepeat(Animation arg0) {
}
@Override
public void onAnimationEnd(Animation arg0) {
}
});
Run Code Online (Sandbox Code Playgroud)
Ant*_*tzi 29
功能与接受的答案相同,但更简洁:
/* Add/Remove any animation parameter */
theView.animate().alpha(0).setDuration(2000).withEndAction(new Runnable() {
@Override
public void run() {
theView.setVisibility(View.GONE);
}
});
Run Code Online (Sandbox Code Playgroud)
请享用 :)
只需获取动画对象并添加动画侦听器即可.这是示例代码:
rotateAnimation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
**// WRITE HERE WHATEVER YOU WANT ON THE COMPLETION OF THE ANIMATION**
}
});
Run Code Online (Sandbox Code Playgroud)
Kotlin 的示例
var fadeOutImage = findViewById<ImageView>(R.id.fade_out_Image)
val fadeOutAnimation = R.anim.fade_out_animation
val animation = AnimationUtils.loadAnimation(this, fadeOutAnimation)
fadeOutImage.startAnimation(animation)
animation.setAnimationListener(object : Animation.AnimationListener {
override fun onAnimationStart(p0: Animation?) {
// not implemented
}
override fun onAnimationRepeat(p0: Animation?) {
// not implemented
}
override fun onAnimationEnd(p0: Animation?) {
fadeOutImage.visibility = View.INVISIBLE
}
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
61801 次 |
| 最近记录: |