2016-07-19 6 views
-4

ループを止める必要があります。私は4人の写真を持っています:そのスライドの後に4ピクチャに移動して、スライドを止める必要があります。アンドロイドでのループスライドショーのやり方

主な活動:

public class MainActivity extends AppCompatActivity { 
    private static ViewPager mPager; 
    private static int currentPage = 0; 
    private static int NUM_PAGES = 0; 
    private static final Integer[] IMAGES= {R.drawable.one,R.drawable.two,R.drawable.three,R.drawable.five}; 
private ArrayList<Integer> ImagesArray = new ArrayList<Integer>(); 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     init(); 
    } 

    private void init() { 

     for(int i=0;i<IMAGES.length;i++) 
      ImagesArray.add(IMAGES[i]); 

     mPager = (ViewPager) findViewById(R.id.pager); 

     mPager.setAdapter(new SlidingImage_Adapter(MainActivity.this,ImagesArray)); 

     CirclePageIndicator indicator = (CirclePageIndicator) 
       findViewById(R.id.indicator); 

     indicator.setViewPager(mPager); 

     final float density = getResources().getDisplayMetrics().density; 

     indicator.setRadius(5 * density); 

     NUM_PAGES =IMAGES.length; 

     // Auto start of viewpager 
     final Handler handler = new Handler(); 
     final Runnable Update = new Runnable() { 
      public void run() { 
       if (currentPage == NUM_PAGES) { 
        currentPage = 0; 
       } 
       mPager.setCurrentItem(currentPage++, true); 
      } 
     }; 
     Timer swipeTimer = new Timer(); 
     swipeTimer.schedule(new TimerTask() { 
      @Override 
      public void run() { 
       handler.post(Update); 
      } 
     }, 3000, 3000); 

     // Pager listener over indicator 
     indicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 

      @Override 
      public void onPageSelected(int position) { 
       currentPage = position; 

      } 

      @Override 
      public void onPageScrolled(int pos, float arg1, int arg2) { 

      } 

      @Override 
      public void onPageScrollStateChanged(int pos) { 

      } 
     }); 

    } 

} 
+1

オーケーそれは停止する必要がありますので、あなたが何をしようとして私たちに語った、私達にコードの85行を示してきました - これら2つの違いは何ですか?今あなたは起こりたくないのですか? –

+0

今、写真はループでスクロール...常にスライドしています...しかし、ループは必要ありません...すべての写真は1回スライドする必要があります – alex

+1

私は非常に明確なコメントではないと恐れています。あなたの質問を編集して、問題が何であるかをより明確に述べてください。そして、理想的には、問題を実証するのに必要な最小限のコードに減らしてください。 –

答えて

0

私は、コードについてはよく分からないが、私は、問題はここにあると思う:

final Runnable Update = new Runnable() { 
      public void run() { 
       if (currentPage == NUM_PAGES) { 
        currentPage = 0; 
       } 
       mPager.setCurrentItem(currentPage++, true); 
      } 
     }; 

それがこの条件(currentPage == NUM_PAGES)し、それをチェック最後に到達するたびに

終了時に停止する場合は、次のようにしてください。

final Runnable Update = new Runnable() { 
       public void run() { 
        if (currentPage < NUM_PAGES) { 
         mPager.setCurrentItem(currentPage++, true); 
        } 
       } 
      }; 

currentPage == NUM_PAGES

+0

それは動作します!ありがとう! – alex

+0

@alex問題はない、うれしい私は助けることができた! :) – Signo

関連する問題