0

Glideクライアントへのイメージローダーとして使用しています。Javaから独自のサーバーを作成します。

私のサーバーのコード:

            File f = new File(imageLocation);
            try{
                bi = ImageIO.read(f);
            }catch (Exception e){
                f = new File(imageLocation);
                bi = ImageIO.read(f);
            }


            respond = "HTTP/1.1 200 OK\r\n";
            respond += "Date: " + LocalDateTime.now() + "\r\n";
            respond += "Content-Type: image/png\r\n";
            respond += "Content-Length: " + f.length() + "\r\n";
            respond += "Connection: keep-alive\r\n";
            respond += "\r\n";
            output.write((respond).getBytes());
            output.flush();
            ImageIO.write(bi,"JPG",output);
            output.flush();

ブラウザからテストしたところ正常に動作しましたが、Glideアンドロイドから呼び出すと画像が表示されません

4

1 に答える 1

1

嘘をついているため、グライドを混乱させる可能性があります。元のContent-Lengthファイルの長さは、再エンコードされたJPG出力と同じではない可能性があります。

あなたが述べているようにPNGではなくJPGであるため、あなたも嘘をついていますがContent-Type、Glideはそれを無視すると思います。

imageLocationのバイトを に送信するほうがよいと思います。そうすればoutput、 をContent-Length簡単に予測できます。

存在する場合、Glideから例外を取得する方法をまだ理解しようとしています

Google グループのディスカッション で述べられているように、https://github.com/bumptech/glide/wiki/Debugging-and-Error-Handlingを読んでください。.listener(new RequestListener...)前に追加.into(imageView)して引数を記録し、何が起こっているかを確認することをお勧めします。

于 2015-10-01T10:56:08.590 に答える