此代码中的问题?
它在android 4上的成功工作!但是不要在2.2上工作!
我使用nineoldandroids库为Android API 8
if(Build.VERSION.SDK_INT > 13) {
v.setTranslationX(0.0F);
v.setTranslationY(height);
v.setRotationX(45.0F);
v.setScaleX(0.7F);
v.setScaleY(0.55F);
ViewPropertyAnimator localViewPropertyAnimator =
v.animate().rotationX(0.0F).rotationY(0.0F).translationX(0).translationY(0).setDuration(animDuration).scaleX(
1.0F).scaleY(1.0F).setInterpolator(interpolator);
localViewPropertyAnimator.setStartDelay(0).start();
} else {
com.nineoldandroids.view.ViewPropertyAnimator.animate(v).translationX(0.0F).translationY(height)
.rotationX(45.0F).scaleX(0.7F).scaleY(0.55F);
com.nineoldandroids.view.ViewPropertyAnimator.animate(v).setStartDelay(0).start();
com.nineoldandroids.view.ViewPropertyAnimator.animate(v).rotationX(0.0F).rotationY(0.0F).translationX(0).translationY(0).setDuration(animDuration).scaleX(
1.0F).scaleY(1.0F).setInterpolator(interpolator);
com.nineoldandroids.view.ViewPropertyAnimator.animate(v).setStartDelay(animDuration).start();
}
抱歉英语不好!
总而言之
- - - - - - - - - - - - - - - -编辑 - - - - - - - - - -----------
代码在Android 2.2上执行但不像android 4!
答案 0 :(得分:2)
ViewPropertyAnimator适用于api级别> 11.但是;你可以使用nineoldandroids库项目,它是这个动画的代理(非常好)。
或者您可以简单地使用Animation
类
更新:
我错过了你说你已经使用过九折的部分。你检查了你的进口,也许你导入了原生的
ViewPropertyAnimation
也可能导致问题。如果api级别> 11,则该libray使用本机api,您不需要导入本机API。
答案 1 :(得分:2)
你需要导入像Nineoldandroid的ViewHelper类
import com.nineoldandroids.view.ViewHelper;
然后使用以下代码
ViewHelper.setTranslationX( Your View, 0.0F);
ViewHelper.setTranslationY( Your View, height);
ViewHelper.setRotationX(Your View,45.0F);
ViewHelper.setScaleX(Your View,0.7F);
ViewHelper.setScaleY(Your View,0.55F);
而不是
v.setTranslationX(0.0F);
v.setTranslationY(height);
v.setRotationX(45.0F);
v.setScaleX(0.7F);
v.setScaleY(0.55F);
答案 2 :(得分:0)
由于Nineoldandroro允许api 1>使用动画方法。
但是,我在API8中运行并且发生强制关闭!
这是解决方案,因为Nineoldandroids
[http://answer.techwikihow.com/962376/nineoldandroids-animation-working-api10.html][1]
使用NineOndndroids文件夹库作为依赖而不是.jar,
修改
中的一些代码ObjectAnimator.Class
按照上面链接中的答案!