【发布时间】:2012-12-19 22:04:33
【问题描述】:
我使用NineOldAndroids 2.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”的所有功能,那么在我的项目中,它将无用。
在"Animation in Honeycomb"的Android开发者博客上引用: 由于系统实际上是在更改目标对象的属性,因此对象本身会发生更改,而不仅仅是它们的外观。因此,您移动的按钮实际上是移动的,而不仅仅是在不同的位置绘制。您甚至可以在其动画位置单击它。继续点击它;我敢。
【问题讨论】:
-
您拥有的 sn-p 对我来说在 2.3 上的 NineOldAndroid 上运行良好。确保您已导入 com.nineoldandroids.animation.ObjectAnimator 而不是 android.animation.ObjectAnimator。
-
是的,我导入了 com.nineoldandroids.animation.ObjectAnimator。你确定你可以在移动后按下按钮吗?正如我之前所说,这不适用于
-
我遇到了同样的问题。您是否尝试使用 translateYBy() 或 x()?