2011-07-08 45 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(); 
      } 
相关问题