2015-06-25 4 views
-2

У меня есть андроид с ViewFlipper. Он выбирает изображения с URL-адреса и отображает их в макете. Предполагается оживить все изображения. Однако он только оживляет первый URL-адрес и продолжает повторяться. Он не отображает другие изображения. Ниже приведен код:Android ViewFlipper для анимации только первого изображения URL

общественный класс DynamicViewFlipper расширяет активность {

/** 
* List of Image URL that will populate the ViewFlipper 
*/ 
private List<String> imageURLs = Arrays.asList(new String[] { 
     "http://example.com/image1.jpg", 
     "http://example.com/image2.jpg", 
     "http://example.com/image3.jpg", 
     "http://example.com/image4.jpg"}); 



private int index = 0; 

private TextView mTextView; 

private ViewFlipper mViewFlipper; 

private Button mNextButton; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_view_flipper); 
    mTextView = (TextView) findViewById(R.id.title); 
    mViewFlipper = (ViewFlipper) findViewById(R.id.viewFlipper); 


      ImageView image = new ImageView(getApplicationContext()); 
      UrlImageViewHelper.setUrlDrawable(image, getNextImage(), R.drawable.loading); 
      mTextView.setText("Showing: " + index); 
      mViewFlipper.addView(image); 
      mViewFlipper.showNext(); 
      mViewFlipper.setAutoStart(true); 
      mViewFlipper.setFlipInterval(2000); 
      mViewFlipper.startFlipping(); 

    mViewFlipper.setInAnimation(AnimationUtils.loadAnimation(getApplicationContext(), android.R.anim.slide_in_left)); 
    mViewFlipper.setOutAnimation(AnimationUtils.loadAnimation(getApplicationContext(), android.R.anim.slide_out_right)); 
} 

protected String getNextImage() { 
    if (index == imageURLs.size()) 
     index = 0; 
    return imageURLs.get(index++); 
} 

}

+0

* Простой ViewAnimator, который будет анимировать между ** два или более просмотров, которые были добавлены к нему. *** vs 'mViewFlipper.addView (изображение)' и ничего больше ... – Selvin

ответ

0

Вы должны иметь что-то вроде этого:

for(String url: imageURLs){ 
    ImageView image = new ImageView(getApplicationContext()); 

    UrlImageViewHelper.setUrlDrawable(image, url,R.drawable.loading); 

    mViewFlipper.addView(image); 
} 

mViewFlipper.setAutoStart(true); 
mViewFlipper.setFlipInterval(2000); 
mViewFlipper.startFlipping(); 
+0

Это сработало. Спасибо #tebitoq – Kenneth