I use 九老机器人 http://nineoldandroids.com2.4.0 为对象设置动画
主要用于运动和变换的控制。
在 Android 4.0 及更高版本上一切正常,但在以前的版本(2.1、2.3)上,动画元素没有获得焦点并且不可点击。
示例代码:
View v = findViewById(R.id.button1);
v.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "Click!", Toast.LENGTH_SHORT).show();
}
});
ObjectAnimator moveDown = ObjectAnimator.ofFloat(v, "translationY", 100f);
moveDown.setDuration(5000);
moveDown.start();
这是库中的错误还是我做错了什么?如果这
库不支持“Honeycomb动画API”的所有功能,那么在我的项目中,它将毫无用处。
Android 开发者博客上的引用《蜂窝动画》 http://android-developers.blogspot.ru/2011/02/animation-in-honeycomb.html:
由于系统实际上正在更改目标对象的属性,因此对象本身会发生变化,而不仅仅是其外观。因此,您移动的按钮实际上已移动,而不仅仅是绘制在不同的位置。您甚至可以在其动画位置单击它。继续点击它;我赌你。
现在我找到了答案:如何用Android做交互动画(翻译) https://stackoverflow.com/questions/9595881/how-to-do-interactive-animation-translation-with-android
它说 nineoldandroids 具有与本机 SDK 相同的限制。
所以我的解决方案:
myAnim.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd ( Animator nullPointer ) {
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) child.getLayoutParams();
params.bottomMargin += toYDelta;
params.leftMargin += toXDelta;
child.setLayoutParams(params);
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)