API 8上的Android动画

时间:2013-08-02 10:33:25

标签: android nineoldandroids

此代码中的问题?

它在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!

3 个答案:

答案 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

按照上面链接中的答案!