mon*_*nja 27 animation android
我正在创建类似SlideDrawer的东西,但是大多数自定义,基本上这个东西都在工作,但动画最后会闪烁.
为了进一步解释,我得到了一个TranslateAnimation然后在这个动画之后它返回到原始位置,如果我设置了setFillAfter,那么布局内的按钮就会停止工作.如果我听onAnimationEnd并将其他布局设置为View.GONE布局fickers.从它的判断来看,在动画结束时,视图会在调用View.GONE之前返回到原始位置.
任何建议都会很棒.谢谢
Soh*_*ham 45
这是与此问题相关的实际错误
这基本上表明onAnimationEnd(...)当AnimationListener附加到Animation时,该方法不能很好地工作
解决方法是在要将动画应用到的视图中侦听动画事件.例如,如果最初将动画侦听器附加到动画上,就像这样
mAnimation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationEnd(Animation arg0) {
//Functionality here
}
Run Code Online (Sandbox Code Playgroud)
然后将动画应用于ImageView此类动画
mImageView.startAnimation(mAnimation);
Run Code Online (Sandbox Code Playgroud)
要解决此问题,您现在必须创建自定义 ImageView
public Class myImageView extends ImageView {
Run Code Online (Sandbox Code Playgroud)
然后覆盖View类的onAnimationEnd方法并提供其中的所有功能
@Override
protected void onAnimationEnd() {
super.onAnimationEnd();
//Functionality here
}
Run Code Online (Sandbox Code Playgroud)
这是此问题的正确解决方法,提供over-riden View - > onAnimationEnd(...)方法中的功能,而不是onAnimationEnd(...)附加到Animation的AnimationListener方法.
这样可以正常工作,并且在动画结束时不再有任何闪烁.希望这可以帮助
jul*_*jul 25
从API 11开始,您可以使用ObjectAnimator实际更改视图属性的,即在转换的情况下,视图将保留在动画后到达的位置.
ObjectAnimator objectAnimator= ObjectAnimator.ofFloat(mContent_container, "translationX", startX, endX);
objectAnimator.setDuration(1000);
objectAnimator.start();
Run Code Online (Sandbox Code Playgroud)
更多这里.
| 归档时间: |
|
| 查看次数: |
32929 次 |
| 最近记录: |