2013-02-27 50 views
-1

我想知道是否有可能恢復drawable的長度[]。恢復Drawable的長度[]

我試圖做到這一點,像我一樣的整數[]:

int count; 
count = myDrawable[].length; 

,但它需要像5秒返回結果(可提拉[]只包含4行)。

Drawable[] theme = {  
    Drawable.createFromStream(expansionFile.getInputStream("amiante_plombier_ce_1.png"), "src"), 
    Drawable.createFromStream(expansionFile.getInputStream("amiante_plombier_ce_2.png"), "src"), 
    Drawable.createFromStream(expansionFile.getInputStream("amiante_plombier_ce_3.png"), "src"), 
    Drawable.createFromStream(expansionFile.getInputStream("amiante_plombier_ce_4.png"), "src"), 
}; 

任何想法爲什麼需要這麼長時間?

+1

從文件解碼圖像不是一件容易的事 - 您要解碼的圖像有多大? – 2013-02-27 16:03:45

+0

我想我表達得很差,我想知道我的drawable []中有多少行,對於這個例子,它應該返回我「4」。 – kom 2013-02-27 16:52:22

+1

我明白 - 但你期待這些PNG能夠瞬間解碼,這對任何硬件來說都是不可能的。我認爲你應該在這種情況下重新考慮你的設計方法。 – 2013-02-27 16:55:14

回答

-1

OK,問題是,我是用我int count; count = myDrawable[].length;功能getCount將()內的一個PagerAdapter的,我必須初始化count之外的功能,並且爲了避免循環和檢查大量的時間做一個測試count在我的expansionFile中。它適用於這樣的事情:

public int count = -1; 

    @Override 
    public int getCount(){ 
     if (count == -1){ 
      try { 
       count = theme.length; 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
     return count; 
    }