2011-08-04 3 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(); 

Если я выполняю, он выдает исключение anticStateException. Снова я перехожу к 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. Pls дает любую идею.

ответ

3

Я думаю, проблема в том, что вы пытаетесь выполнить как пользовательский интерфейс, так и не-пользовательский интерфейс в потоке пользовательского интерфейса. Таким образом, ваш UrlToImage удерживает заложник в пользовательском интерфейсе, в то время как он извлекает данные из сети, предотвращая все другие операции пользовательского интерфейса (в том числе перерисовывая ваш анимированный индикатор прогресса). А что-то вроде этого:

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

Hi. Друг .. Спасибо, что так много ... Его работа ... – RVG

0

Я знаю, что это уже помечено как ответил, но я думал, вы должны смотреть на мой пост на эту тему here

Он должен сделать все ваши проблемы приложения пульса уходят ,

+0

Thaks friend .. Его очень полезно ..... – RVG

Смежные вопросы