2014-11-27 14 views
5

Diyelim ki, çekilebilir klasörde birden fazla resim var (ex-8 resim). Tüm bu görüntüleri bir görüntüde göstermek istiyorum. Birbiri ardına soldan sağa çevirme efektini tekrar tekrar göster (ex-img[0],img[1],……img[8],img[0],img[1],…………). Bunu nasıl yapabilirim?Bir görüntüdeki birden çok görüntü gösterme Soldan sağa doğru birbiri ardına görünümü tersine çevirme efekti

private void AnimateandSlideShow() { 
    image1 = (ImageView)findViewById(R.id.imageView1); 
    image1.setImageResource(img[currentimageindex1%img.length]); 
    currentimageindex1++; 
    Animation rotateimage = AnimationUtils.loadAnimation(this, R.anim.custom_anim); 
    image1.startAnimation(rotateimage);   
} 

cevap

4

Kullanım özel fonksiyon i görüntü yardımcısı ayet yönünü değiştirmek burada, imajını değiştirmek aralığı için işleyici kullanarak görüntüyü döndürmek:

private ImageView image1; 
    private int[] imageArray; 
    private int currentIndex; 
    private int startIndex; 
    private int endIndex; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     image1 = (ImageView)findViewById(R.id.imageView1); 
     imageArray = new int[8]; 
     imageArray[0] = R.drawable.one; 
     imageArray[1] = R.drawable.two; 
     imageArray[2] = R.drawable.three; 
     imageArray[3] = R.drawable.four; 
     imageArray[4] = R.drawable.five; 
     imageArray[5] = R.drawable.six; 
     imageArray[6] = R.drawable.seven; 
     imageArray[7] = R.drawable.eight; 

     startIndex = 0; 
     endIndex = 7; 
     nextImage(); 


    } 

    public void nextImage(){ 
     image1.setImageResource(imageArray[currentIndex]); 
     Animation rotateimage = AnimationUtils.loadAnimation(this, R.anim.custom_anim); 
     image1.startAnimation(rotateimage); 
     currentIndex++; 
     new Handler().postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       if(currentIndex>endIndex){ 
        currentIndex--; 
        previousImage(); 
       }else{ 
        nextImage(); 
       } 

      } 
     },1000); // here 1000(1 second) interval to change from current to next image 

    } 
    public void previousImage(){ 
     image1.setImageResource(imageArray[currentIndex]); 
     Animation rotateimage = AnimationUtils.loadAnimation(this, R.anim.custom_anim); 
     image1.startAnimation(rotateimage); 
     currentIndex--; 
     new Handler().postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       if(currentIndex<startIndex){ 
        currentIndex++; 
        nextImage(); 
       }else{ 
        previousImage(); // here 1000(1 second) interval to change from current to previous image 
       } 
      } 
     },1000); 

    } 
+0

ur yardım bro için teşekkürler ... ama görüntüleri değiştirirken flip animasyon efekti istiyorum ... bana animasyon xml kodu verebilir miyim ?? lütfen –

+0

bunu kontrol edin: http://androidtutorials60.blogspot.in/2013/09/simple-rotate-animation-in-android.html –

0

Uygulamanızda Galeri Görünümü'nü kullanın.) (Bu size arkadaş :)

+0

Bro arayarak otomatik görüntüleri saygısız başlayabilir

ViewFlipper viewFlipper = (ViewFlipper)findViewById(R.id.flipperid); 

ve şimdi görüntülemek istediğiniz Bu görüntüler bir flip animasyon efekti ile birbiri ardına sıralar.Görüntünün görüntü görüntüsünde görüntülendiğini varsayalım. Fakat yeni bir görüntü geldiğinde bir çevirme efekti ile gösterilmelidir. –

0
<ViewFlipper 
      android:id="@+id/imageCarouselContainer" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_above="@+id/progressSlideshow" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentTop="true" 
      android:layout_marginBottom="0dp" 
      android:animateFirstView="true" 
      android:background="@color/black" 
      android:flipInterval="2000" 
      android:inAnimation="@anim/fade_in" 
      android:orientation="vertical" 
      android:outAnimation="@anim/fade_out" > 

      <ImageView 
       android:id="@+id/imageView1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:layout_centerVertical="true" 
       android:layout_marginRight="5dp" 
      /> 

      <ImageView 
       android:id="@+id/imageView1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:layout_centerVertical="true" 
       android:layout_marginRight="5dp" 
      /> 

      <ImageView 
       android:id="@+id/imageView1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:layout_centerVertical="true" 
       android:layout_marginRight="5dp" 
      /> 
     </ViewFlipper> 

yourViewFlipper.startFlipping yardımcı olacaktır

http://www.androidinterview.com/android-gallery-view-example-displaying-a-list-of-images/

umut bu öğretici izleyin;

+0

downvoters yorum yapmaya değer mi? –

0

Hemen kullanmak

public class CustomGallery extends Gallery { 

private Handler handler; 

public CustomGallery(Context context) { 
    super(context); 
    handler = new Handler(); 
    postDelayedScrollNext(); 
} 

public CustomGallery(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    handler = new Handler(); 
    postDelayedScrollNext(); 
} 
public CustomGallery(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
    handler = new Handler(); 
    postDelayedScrollNext(); 
} 

protected void postDelayedScrollNext() { 
    handler.postDelayed(new Runnable() { 
     public void run() { 
      postDelayedScrollNext(); 
      Log.d("CustomGallery", "dpad RIGHT"); 
      onKeyDown(KeyEvent.KEYCODE_DPAD_RIGHT, null); 
     } 
    }, 1000); 
} 

protected boolean isScrollingLeft(MotionEvent e1, MotionEvent e2) { 
    return e2.getX() > e1.getX(); 
} 

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 
    int kEvent; 
    if (isScrollingLeft(e1, e2)) { 
     Log.d("CustomGallery", "fling LEFT"); 
     kEvent = KeyEvent.KEYCODE_DPAD_LEFT; 
    } else { 
     Log.d("CustomGallery", "fling LEFT"); 
     kEvent = KeyEvent.KEYCODE_DPAD_RIGHT; 
    } 
    onKeyDown(kEvent, null); 
    return true; 
} 
} 
1

ViewFlipper kullanın ve ImageView'u ViewFlipper içine ekleyin.

Düzen dosyası:

<ViewFlipper 
    android:layout_width="match_parent" 
    android:layout_height="330dp" 
    android:layout_below="@id/textViewid" 
    android:layout_marginTop="20dp" 
    android:id="@+id/flipperid" 
    android:layout_centerInParent="true" 
    android:flipInterval="4000" 
    android:elevation="5dp"> 

    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:src="@drawable/pic1" 
     android:scaleType="fitCenter" 
     android:layout_gravity="center_horizontal"/> 

    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:src="@drawable/pic2" 
     android:scaleType="fitCenter" 
     android:layout_gravity="center_horizontal"/> 

</ViewFlipper> 

Sonra aktivitesinde kodu altında ekleyin. Eğer, ben dinamik olarak tek resim görüntüle .I farklı imajları değişen am viewFlipper.startFlipping();

Umut bu size yardımcı olacaktır ..

+0

Bu çok basit cevap için çok teşekkürler. Buna bir çeşit animasyon ekleyebilir miyiz? –

+0

Bunu kontrol edin https://stackoverflow.com/a/25781173/4608334 Mutlu Kodlama! –

İlgili konular