2014-09-11 17 views
10

Android için yeni ve animasyon hakkında pek bir şey bilmiyorum. Bir viewflipper var ve bunların içindeki resimler arasında animasyon uygulamak istiyorum. bu kodu şöyledir:android- basit bir görünüm için soluklaşır ve animasyonda kaybolur

 runnable = new Runnable() { 
      public void run() { 
      handler.postDelayed(runnable, 3000); 
      imageViewFlipper.setInAnimation(fadeIn); 
      imageViewFlipper.setOutAnimation(fadeOut); 
      imageViewFlipper.showNext(); 
      } 
      }; 
      handler = new Handler(); 
      handler.postDelayed(runnable, 500); 
    } 

2 animasyon dosyası iyi değildir, onlar çok kötü animasyon. Sadece ön görüntünün kaybolması ve bir sonraki görüntüde kaybolması için bir koda ihtiyacım var.

Bana yardım edip bana böyle bir şey verebilir misiniz?

teşekkürler

+0

bu öğretici deneyin: http: //www.androidhive.info/2013/06/android-working-with-xml-animations/ – prakash

cevap

24

bu bağlantıları bakın, onlar da sahip animasyon xml en:

Link 1 & Link 2

Örnek Sınıfı:

public class ViewFlipperMainActivity extends Activity 
{ 
    private ViewFlipper viewFlipper; 
    private float lastX; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.view_flipper_main); 
       viewFlipper = (ViewFlipper) findViewById(R.id.view_flipper); 
    } 



    // Method to handle touch event like left to right swap and right to left swap 
    public boolean onTouchEvent(MotionEvent touchevent) 
    { 
    switch (touchevent.getAction()) 
    { 
     // when user first touches the screen to swap 
     case MotionEvent.ACTION_DOWN: 
     { 
      lastX = touchevent.getX(); 
      break; 
     } 
     case MotionEvent.ACTION_UP: 
     { 
     float currentX = touchevent.getX(); 

     // if left to right swipe on screen 
     if (lastX < currentX) 
     { 
       // If no more View/Child to flip 
      if (viewFlipper.getDisplayedChild() == 0) 
       break; 

      // set the required Animation type to ViewFlipper 
      // The Next screen will come in form Left and current Screen will go OUT from Right 
      viewFlipper.setInAnimation(this, R.anim.in_from_left); 
      viewFlipper.setOutAnimation(this, R.anim.out_to_right); 
      // Show the next Screen 
      viewFlipper.showNext(); 
     } 

     // if right to left swipe on screen 
     if (lastX > currentX) 
     { 
      if (viewFlipper.getDisplayedChild() == 1) 
       break; 
      // set the required Animation type to ViewFlipper 
      // The Next screen will come in form Right and current Screen will go OUT from Left 
      viewFlipper.setInAnimation(this, R.anim.in_from_right); 
      viewFlipper.setOutAnimation(this, R.anim.out_to_left); 
      // Show The Previous Screen 
      viewFlipper.showPrevious(); 
     } 
     break; 
     } 
     } 
    return false; 
    } 
} 

Fade In-Out Usiong Java Code :

Animation fadeIn = new AlphaAnimation(0, 1); 
fadeIn.setInterpolator(new DecelerateInterpolator()); //add this 
fadeIn.setDuration(1500); //time in milliseconds 

Animation fadeOut = new AlphaAnimation(1, 0); 
fadeOut.setInterpolator(new AccelerateInterpolator()); //and this 
fadeOut.setStartOffset(1000); 
fadeOut.setDuration(1500); //time in milliseconds 

AnimationSet animation = new AnimationSet(false); //change to false 
animation.addAnimation(fadeIn); 
animation.addAnimation(fadeOut); 
this.setAnimation(animation); 

Animasyon Xml:

Fade In:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/linear_interpolator"> 
    <alpha 
     android:fromAlpha="0.1" 
     android:toAlpha="1.0" 
     android:duration="2000" 
     /> 
</set> 

Fade Out:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/linear_interpolator"> 
    <alpha 
     android:fromAlpha="1.0" 
     android:toAlpha="0.1" 
     android:duration="2000" 
     /> 
</set> 

in_from_left.xml

<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shareInterpolator="false"> 
    <translate 
     android:fromXDelta="-100%" android:toXDelta="0%" 
      android:fromYDelta="0%" android:toYDelta="0%" 
      android:duration="1400" /> 
</set> 

in_from_right.xml

<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shareInterpolator="false"> 
    <translate 
     android:fromXDelta="100%" android:toXDelta="0%" 
      android:fromYDelta="0%" android:toYDelta="0%" 
      android:duration="1400" /> 
</set> 

out_to_left.xml

<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shareInterpolator="false"> 
     <translate android:fromXDelta="0%" android:toXDelta="-100%" 
     android:fromYDelta="0%" android:toYDelta="0%" 
     android:duration="1400"/> 
</set> 

out_to_right.xml

<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shareInterpolator="false"> 
     <translate android:fromXDelta="0%" android:toXDelta="100%" 
     android:fromYDelta="0%" android:toYDelta="0%" 
     android:duration="1400"/> 
</set> 

view_flipper_main.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <ViewFlipper 
     android:id="@+id/view_flipper" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
     <!-- The child Views/Layout to flip --> 
     <ImageView 
      android:layout_marginTop="15dp" 
      android:id="@+id/imageView1" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:src="@drawable/image1" /> 
     <ImageView 
      android:layout_marginTop="15dp" 
      android:id="@id/imageView1" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:src="@drawable/image2" /> 
    </ViewFlipper> 
</LinearLayout> 

DÜZENLEME:

den fazla 2 yıl ve insanların çok oldu bu yüzden malzeme tasarımı geçişler ve bazı tüm yardımcı olmak için, bu cevaba atıfta gibi görünüyor oluyor

Yeni geçişler burada bir çift referans linki.

Animate all the things. Transitions in Android

Material-Animations

+1

hepsini buraya olması çok kullanışlı:) – rupps

+1

@Sagar Pilkhwal u zaman için +1 oyımı kurtardın. –

İlgili konular