2014-04-16 62 views
0

我想通過兩個靜態圖像做一個動態圖像,但是這個代碼只是一個靜態圖像的閃光,現在我想分別在4秒內閃爍兩個圖像。不要改變resoucre圖像

<ImageSwitcher 
    android:id="@+id/imageswitcherID" 
    <!-- insert another value to the view like layout width and height or margin --> 
    android:inAnimation="@anim/fade_in" 
    android:outAnimation="@anim/fade_out" 
    > 

    <ImageView 
     android:id="@+id/imageview1" 
     <!-- another value here --> 
     android:background="@drawable/your_drawable01" 
     /> 

    <ImageView 
     android:id="@+id/imageview2" 
     <!-- another value here --> 
     android:background="@drawable/your_drawable02" 
     /> 

</ImageSwitcher> 

,現在繼續您的活動,創建線程循環,持續4秒

int seconds = 0; 
ImageSwitcher imgswitch; 
... 
@Override 
protected void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.your_layout); 

    imgswitch = (ImageSwitcher)findViewById(R.id.imageswitcherID); 

    SwitchingImages(); 
} 
... 
private void SwitchingImages(){ 
    Thread SwImg = new thread(){ 
     @Override 
     public void run(){ 
      try{ 
       while(seconds <= 4){ 
        sleep(1000); //sleep for 1 seconds 
        runOnUiThread(new Runnable(){ 
         @Override 
         public void run(){ 
          imgswitch.showNext(); //will switch images every 1 seconds 
          if(seconds >= 5){ 
           return; //stop the thread when 4 seconds elapsed 
          } 
          seconds += 1; 
         } 
        }); 
       } 
      }catch(InterruptedException e){ 
       e.printStackTrace(); 
      } 
     } 
    }; 
    SwImg.start(); 
} 
+0

你只是想讓圖像在4秒後或者每4秒重複一次? –

+0

我只是想讓它切換一次4秒。但代碼只顯示一個圖像。我想分別在4秒後顯示2張圖像。 – giangdaughtry

回答

1

這是很容易用RunnableView.postDelayed()方法來做。刪除SwitchingImages()方法,並將其放在imgswitch = ...後面。

imgswitch.postDelayed(
    // Here we create an anonymous Runnable 
    // to switch the image and repost 
    // itself every 0.5 * 1000 milliseconds 
    // until count = 8 
    new Runnable() 
    { 
     int count = 0; 

     @Override 
     public void run() 
     { 
      if (count < 4 * 2) 
      { 
       imgswitch.showNext(); 
       count++; 
       imgswitch.postDelayed(this, 500); 
      } 
     } 
    } 
    , 500); 

如果你希望它結束​​的其他圖像上,添加或4 * 2減去1

+0

當然,如果你確定'ImageSwitcher'的圖像和動畫是正確的,那麼這隻會起作用。 –

+0

謝謝,但它不工作,我想要的,你已經改變了2個圖像出現在4s,但我想每0.5s圖像a將取代圖像b,並相反。 4秒後會結束。 – giangdaughtry

+0

好吧,讓我看看我是否明白。您希望圖像每0.5秒切換一次,然後在4秒後停止切換。這是正確的嗎? –