2015-08-03 16 views
0

Я пытаюсь загрузить изображения в видеомикшер с Http-сервера. Я не нашел никакой функции, такой как setImageBitmap. Поэтому я попытался использовать setImageURI(), но не загружался. Я переключаю изображение каждые 3 сек. Это код. Когда я запускаю код, изображение не загружается. И приложение также становится разбитым.Как загрузить изображения в ImageSwitcher с сервера?

String arr[]={"http://192.168.1.7/photos/dummy/1.jpg","http://192.168.1.7/photos/dummy/2.jpg","http://192.168.1.7/photos/dummy/3.jpg"} 


dailyWear = (ImageSwitcher) getActivity().findViewById(R.id.imageDailyWear); 
dailyWear.setFactory(new ViewSwitcher.ViewFactory() { 
     @Override 
     public View makeView() { 
      ImageView myView = new ImageView(getActivity()); 
      myView.setScaleType(ImageView.ScaleType.FIT_XY); 
      myView.setLayoutParams(new ImageSwitcher.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT)); 
      return myView; 
     } 
    }); 
    dailyWear.setInAnimation(AnimationUtils.loadAnimation(getActivity(), android.R.anim.slide_in_left)); 
    dailyWear.setOutAnimation(AnimationUtils.loadAnimation(getActivity(), android.R.anim.slide_out_right)); 

final Handler handler = new Handler(); 
    final Runnable r = new Runnable() { 

     int i=0; 
     public void run() { 
      weddingWear.setImageURI(Uri.parse(arr[i)); 

      i++; 
      if (i >= arr.length()-1) 
       i = 0; 

      handler.postDelayed(this, 3000); 
     } 
    }; 

    handler.postDelayed(r, 1000); 
+0

Сообщение об ошибке. –

ответ

0

, что вы можете сделать, это сначала получить эти изображения и сохранить его в ArrayList растрового изображения, которые вы можете переключать эти изображения

private Context mContext; 
private int index = 0; 
private final int interval = 3000; 
private final int DURATION=1500; 


    public void animate_Images_In_Top_View_After_Every_Three_Seconds(
     ImageSwitcher imageSwitcher, final ArrayList<Bitmap> _Images_List) { 

    android.view.animation.Animation aniIn = AnimationUtils.loadAnimation(mContext, 
      android.R.anim.fade_in); 
    aniIn.setDuration(DURATION); 
    android.view.animation.Animation aniOut = AnimationUtils.loadAnimation(mContext, 
      android.R.anim.fade_out); 
    aniOut.setDuration(DURATION); 

    final ImageSwitcher _ImageSwitcher = imageSwitcher; 
    _ImageSwitcher.setInAnimation(aniIn); 
    _ImageSwitcher.setOutAnimation(aniOut); 
    _ImageSwitcher.setFactory((android.widget.ViewSwitcher.ViewFactory) mContext); 
    _ImageSwitcher.setImageDrawable(new BitmapDrawable(_Images_List.get(index))); 
    final Handler handler = new Handler(); 
    Runnable runnable = new Runnable() { 

     @Override 
     public void run() { 

       index++; 
       index = index % _Images_List.size(); 
      //  Log.d("Intro Screen", "Change Image " + index); 
       _ImageSwitcher.setImageDrawable(new BitmapDrawable(_Images_List.get(index))); 
       handler.postDelayed(this, interval); 

     } 
    }; 
    handler.postDelayed(runnable, interval); 
} 

и я использую замирание в и анимации, вы можете установить на ваш собственной потребности.

+0

Надеюсь, он сработает, я пытаюсь его реализовать. – rahul

+0

его работая отлично но, как раз одна проблема. Предположим, что в массиве битмапа размер равен 3, затем после сдвига трех изображений один за другим. его запах еще на 3 секунды без какого-либо изображения, а затем его начало от 0, что означает, что оно циркулирует, но промежуток в 3 секунды находится между ними. – rahul

 Смежные вопросы

  • Нет связанных вопросов^_^