2016-01-04 35 views
2

我開發一種應用中,在具有圖尋呼機i到顯示不同視頻圖像的Android,停止自動滑動,有n個尋呼機屏幕的數目,在觸摸

所有頁面是像以下自動滑動。

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    ViewGroup v=(ViewGroup)inflater.inflate(R.layout.fragment_home, container, false); 

    ButterKnife.bind(this, v); 



    /*Snackbar.make(v, "Home Fragment", Snackbar.LENGTH_LONG) 
      .setAction("Action", null).show();*/ 
    //Toast.makeText(getActivity(),"home Fragment",Toast.LENGTH_LONG).show(); 
    viewPager.setAdapter(new MyPagerAdapter()); 

    t=new Thread(){ 
     @Override 
     public void run() 
     { 

      try { 
       while(true) { 
        count %= size; 
        Log.w("slide", "" + count); 
        getActivity().runOnUiThread(new Runnable() { 

         @Override 
         public void run() { 
          viewPager.setCurrentItem(count); 
         } 
        }); 

        count++; 
        Thread.currentThread().sleep(5000); 
       } 

      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
     } 
    }; 
    //t.start(); 

    return v; 
} 

我想停止自動幻燈片尋呼機當我觸摸到這個特定的尋呼機,當我從那麼自動呼叫器的幻燈片開始的尋呼機刪除我的手指,並再次停止聯繫,如何實現這一功能呢?

+0

對於這個你必須操縱線程。點擊這裏----> http://www.tutorialspoint.com/java/java_thread_control.htm http://stackoverflow.com/questions/10961714/how-to-properly-stop-the-thread-in-java –

+0

我通過這個實現了這一點:https://github.com/Trinea/android-auto-scroll-view-pager – TopsAndy

回答

-1

您可以識別viewpager的觸摸事件,並在此基礎上停止並啓動滑塊。就像下面你會得到觸摸事件,然後你可以維護你的線程工作。

viewPager.setOnTouchListener(new View.OnTouchListener() { 
       @Override 
       public boolean onTouch(View v, MotionEvent event) { 
    // put your code here to stop and start slide, means put your thread code here.. 
        return false; 
       } 
      }); 
1

我用https://github.com/Trinea/android-auto-scroll-view-pager

實現我的功能,我用下面的自定義viewpager

<cn.trinea.android.view.autoscrollviewpager.AutoScrollViewPager 
android:id="@+id/view_pager" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" /> 

,並設置間隔爲特定時間自動幻燈片

setInterval(long) 

然後使用:startAutoScroll()自動幻燈片

方法:topAutoScroll()對觸摸停止動畫,就像下面,

 layout.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 

       switch(event.getAction()) 
       { 
        case MotionEvent.ACTION_DOWN: 
         Log.w("touched","down"); 
         stopScroll(); 
         return true; 
         //break; 

        case MotionEvent.ACTION_UP: 
         Log.w("touched","up"); 
         startScroll(); 
         return true; 
         //break; 
       } 

       return false; 
      } 
     }); 

和使用以下gradle這個:

compile ('cn.trinea.android.view.autoscrollviewpager:android-auto-scroll-view-pager:1.1.2') 
{ 
    exclude module: 'support-v4' 
}