2011-08-04 31 views
0

我想在網絡上加載圖片時在屏幕上顯示進度指示器。我用下面的代碼。,ProgressIndicator在黑莓手機上沒有動畫

Bitmap bitmap ; 
    BitmapField imageField ; 
    VerticalFieldManager vfm= new VerticalFieldManager(); 
    ProgressAnimationField spinner =new ProgressAnimationField(Bitmap.getBitmapResource("spinner2.png"));      
    vfm.add(spinner); 
    new Thread(new Runnable() 
    { 
     public void run() 
     { 
      bitmap = new UrlToImage(Constants.ICON_URL+"_big.png"+suffix).getImage();        
      imageField = new BitmapField(bitmap); 
      vfm.delete(spinner) 
      vfm.add(imagefield); 
     } 
    }).start(); 

如果我執行,它會拋出illegalStateException。我再次變成ui thead,

Bitmap bitmap ;                           
    BitmapField imageField ; 
    VerticalFieldManager vfm = new VerticalFieldManager();                 
    ProgressAnimationField spinner =new ProgressAnimationField(Bitmap.getBitmapResource("spinner2.png"));       
    vfm.add(spinner); 
    UiApplication.getUiApplication().invokeLater(new Runnable() 
    { 
     public void run() 
     { 
      bitmap = new UrlToImage(Constants.ICON_URL+"_big.png"+suffix).getImage();          
      imageField = new BitmapField(bitmap); 
      vfm.delete(spinner) 
      vfm.add(imagefield); 

     } 
    }); 

沒有錯誤顯示。但progressanimationfield不是動畫的。 什麼改變我的代碼爲progressAnimatedField設置動畫效果。請給任何想法..

回答

3

我認爲問題是你正在嘗試在UI線程上做UI和非UI操作。所以,你的UrlToImage在從網絡中檢索數據的同時保持UI線程的人質,阻止所有其他UI操作(包括重新繪製動畫進度指示器)。關於這樣的事情是什麼:

Bitmap bitmap ;                           
BitmapField imageField ; 
VerticalFieldManager vfm = new VerticalFieldManager();                 
ProgressAnimationField spinner =new ProgressAnimationField(Bitmap.getBitmapResource("spinner2.png"));       
vfm.add(spinner); 
new Thread(new Runnable() 
{ 
    public void run() 
    { 
     bitmap = new UrlToImage(Constants.ICON_URL+"_big.png"+suffix).getImage();          
     imageField = new BitmapField(bitmap); 
     UiApplication.getUiApplication().invokeLater(new Runnable() 
      public void run() {    
       vfm.delete(spinner); 
       vfm.add(imagefield); 
      } 
     }); 
    } 
}); 
+0

嗨。朋友..非常感謝你...它的工作... – RVG

0

我知道這已經被標記爲回答,但我想你應該看看我的文章有關此主題的here

應該讓所有應用程序的心跳問題消失。

+0

Thaks朋友..它非常有幫助..... – RVG