2011-07-08 71 views
0

我想要在垂直和水平方向上一個接一個地顯示圖像。在android中更改圖像查看

我剛剛在xml佈局中創建了一個imageview,然後我通過id調用了該圖像,然後我只想在一個imageview中顯示像這樣的圖像列表。

它首先顯示一段時間後的第一個圖像,第一個圖像被刪除,然後第二個圖像將可見,在Android設備中不需要改變imageview的位置,如ads。我的意思是每10秒Imageview已被更改。

,所以我嘗試下面的代碼

class doInBack extends AsyncTask<URL, Bitmap, Long> 
    { 

     @Override 
     protected Long doInBackground(URL... arg0) { 
     for(int i=0;i<adimage.length;i++){ 
      Bitmap bitmap=Download(adimage[i]); 
       publishProgress(bitmap); 
       try { 
        Thread.sleep(10000); 
       } catch (InterruptedException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
       } 
       return null; 

     } 
     protected void onProgressUpdate(Bitmap bitmap) { 
      adimg.setImageBitmap(bitmap); 
     } 
     protected void onPostExecute(Long result) { 

     } 
    } 

但它並沒有調用OnProgressUpdate方法。所以請告訴我如何在一個圖像視圖中逐個顯示多個圖像。

+0

任何錯誤在你的代碼?什麼是adimage?什麼是下載(adimage [i])?你的代碼對我來說很奇怪。 – Egor

+0

沒有錯誤下載(adimage [i])意味着adimage是一個圖像url的數組,並且在Download(adimage [i])方法中它返回位圖url – Ramakrishna

+0

我不知道我是否會信任'Thread.sleep()'那麼多 – Phonon

回答

0

我用下面的代碼及其工作

   int i=0; 
       final Handler handler=new Handler(); 
       final Runnable r=new Runnable() 
        { 
         public void run() 
         { 
          if(i<adimage.length){ 
          adimage.setImageBitmap(Download(adimage[i])); 
          i++; 
           if(i==adimage.length) 
            i=0; 
          } 
          else 
           i=0; 
         } 
        }; 
        if(thread == null){ 
        thread = new Thread() 
        { 
         @Override 
         public void run() { 
          try { 
           while(true) { 
            sleep(10*1000); 
            handler.post(r); 
           } 
          } catch (InterruptedException e) { 
           e.printStackTrace(); 
          } 
         } 
        }; 

        thread.start(); 
      } 
相關問題