-1

ドローアブル[]の長さを回復できるかどうか知りたいのですが。

Integer []の場合と同じように、これを実行しようとしました。

int count;
count = myDrawable[].length;

ただし、結果を返すのに5秒ほどかかります(drawable []に​​は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"),
};

なぜそんなに時間がかかるのか分かりますか?

4

1 に答える 1

-1

OK、要点はint count; count = myDrawable[].length;、PagerAdapterの関数getCount()の内部を使用していたことです。関数の外部で初期化し、expansionFile内で何度もループやチェックを行わないようにするためにcountテストを行う必要がありました。countこれは次のようなもので完全に機能します:

    public int count = -1;

    @Override
    public int getCount(){
        if (count == -1){
            try {
                count = theme.length;
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return count;
    }
于 2013-02-28T13:27:03.877 に答える