2015-10-26 2 views
0

Я делаю анимированный учебник для приложения. Я использую фрагмент над активностью, чтобы показать эффект скольжения изображения. Я использую анимацию Translate, чтобы переместить представление изображения в конкретное представление, чтобы описать его работу, но на самом деле я хочу анимировать изображение, чтобы перемещаться бесконечно после достижения представления.Как анимировать представление программно в android?

+0

chek [this] (http://developer.android.com/guide/topics/graphics/view-animation.html) – Mohit

+0

Отметьте это -> http://stackoverflow.com/questions/2032304/android-imageview -анимация http://www.javasrilankansupport.com/2013/06/how-to-move-an-image-from-left-to-right-and-right-to-left-in-android.html http://stackoverflow.com/questions/16399630/infinite-animation-of-imageview-android –

ответ

0

Если вы хотите анимировать бесконечное число раза, вы можете использовать андроид RotateAnimation класса

Надеется, что это может помочь вам:

RotateAnimation anim = new RotateAnimation(0f, 350f, 15f, 15f); 
anim.setInterpolator(new LinearInterpolator()); 
anim.setRepeatCount(Animation.INFINITE); 
anim.setDuration(700); 

// Start animating the image 
final ImageView splash = (ImageView) findViewById(R.id.splash); 
splash.startAnimation(anim); 

// Later.. stop the animation 
splash.setAnimation(null); 
0

Предположит, что вид v предполагает, чтобы оживить

public void ViewExapand(View v) 
     { 
         v.setVisibility(View.VISIBLE); 

         final int widthSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); 
         final int heightSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); 
         v.measure(widthSpec, heightSpec); 
         ValueAnimator mAnimator = slideAnimator(0, v.getMeasuredHeight(),v); 
         mAnimator.start(); 
     } 



private ValueAnimator slideAnimator(int start, int end, final View v) 
    { 
     ValueAnimator animator = ValueAnimator.ofInt(start, end); 
     animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 
      @Override 
      public void onAnimationUpdate(ValueAnimator valueAnimator) { 
       //Update Height 
       int value = (Integer) valueAnimator.getAnimatedValue(); 
       ViewGroup.LayoutParams layoutParams = v.getLayoutParams(); 
       layoutParams.height = value; 
       v.setLayoutParams(layoutParams); 
      } 
     }); 
     return animator; 
    } 

Вы также можете использовать ObjectAnimator

ObjectAnimator.ofInt(your view, "left", 100, 250) 
    .setDuration(250) 
    .start(); 
Смежные вопросы