简而言之:是的,nineoldandroids确实有这些支持。
如果您在9oldandroids中查看ObjectAnimator的源代码,您会注意到它使用代理来为您想要动画的属性设置动画。
PROXY_PROPERTIES.put("alpha", PreHoneycombCompat.ALPHA);
PROXY_PROPERTIES.put("pivotX", PreHoneycombCompat.PIVOT_X);
PROXY_PROPERTIES.put("pivotY", PreHoneycombCompat.PIVOT_Y);
PROXY_PROPERTIES.put("translationX", PreHoneycombCompat.TRANSLATION_X);
PROXY_PROPERTIES.put("translationY", PreHoneycombCompat.TRANSLATION_Y);
PROXY_PROPERTIES.put("rotation", PreHoneycombCompat.ROTATION);
PROXY_PROPERTIES.put("rotationX", PreHoneycombCompat.ROTATION_X);
PROXY_PROPERTIES.put("rotationY", PreHoneycombCompat.ROTATION_Y);
PROXY_PROPERTIES.put("scaleX", PreHoneycombCompat.SCALE_X);
PROXY_PROPERTIES.put("scaleY", PreHoneycombCompat.SCALE_Y);
PROXY_PROPERTIES.put("scrollX", PreHoneycombCompat.SCROLL_X);
PROXY_PROPERTIES.put("scrollY", PreHoneycombCompat.SCROLL_Y);
PROXY_PROPERTIES.put("x", PreHoneycombCompat.X);
PROXY_PROPERTIES.put("y", PreHoneycombCompat.Y);
使用ObjectAnimator,你通常会(只是确保它的com.nineoldandroids.animation
ObjectAnimator anim = ObjectAnimator.ofFloat(yourView, "translationX", 0f, 1f);
anim.setDuration(1000);
anim.start();
编辑:!这里有一个如何动画的onTouchListener内的视图的示例通知返回错误表示收听者没有消费该事件
view.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
ObjectAnimator anim = ObjectAnimator.ofFloat(view, "translationX", 0f, 1f);
anim.setDuration(1000);
anim.start();
return false;
}
});
退房[droidQuery](http://bit.ly/droidquery)用于编写与Froyo兼容的简单动画。这使用* NineOldAndroids *,并进一步简化了动画语法。 – Phil