1

以下のコードを使用して、サーバーから画像を取得しました。サーバーに配置された60の異なる画像があります。私はそれらすべての画像のURLを持っています。while ループを使用すると、これらすべての画像を取得できますが、サーバーから画像を読み込むのに時間がかかります。

これらの画像をできるだけ早く取得するにはどうすればよいですか?

 public Image getImagefromURL(String imageURL) {
    DataInputStream is = null;
    StringBuffer sb = new StringBuffer();
    Image img = null;
    try {
        HttpConnection c = (HttpConnection) Connector.open(imageURL);
        int len = (int) c.getLength();

        if (len > 0) {
            is = c.openDataInputStream();
            byte[] data = new byte[len];
            is.readFully(data);
            img = Image.createImage(data, 0, len);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return img;
}

また、最初の画像を取得すると、アプリケーションが「アプリケーションが通信時間を使用して [画像の場所の URL] に接続したいのですが、通信時間を使用してもよろしいですか?」のように確認しているという 1 つのことが起こっています。ここで、画像の場所のパスを非表示にします。どうやってやるの?

4

1 に答える 1

0

画像が大きいほど、読み込みに時間がかかります。PNG 画像がPNGGauntletなどのツールで圧縮されていることを確認してください。

RMS を使用してアプリケーション側にローカル キャッシュを追加することもできます。

そして最後のヒント... に頼るべきではありませんHttpConnection.getLength。読み取るデータがある場合でも、ゼロになる可能性があります。

于 2012-09-25T11:13:02.380 に答える