0
我正在使用某些Web服務的服務,它通常會返回JSON響應,但是當我發送用戶ID時會返回一個服務返回靜態GIF圖像(不是動畫)。Android/Java - 如何從Web服務中檢索圖像並將其顯示出來
,我做的程序是:
1.連接使用DefaultHttpClient
2.Convert InputStream中收到與此utilitary方法的String Web服務:
public static String inputStreamToStringScanner(InputStream in) {
Scanner fileScanner = new Scanner(in);
StringBuilder inputStreamString = new StringBuilder();
while(fileScanner.hasNextLine())
inputStreamString.append(fileScanner.nextLine()).append("\n");
fileScanner.close();
return inputStreamString.toString();
}
3。存儲轉換後的收到的字符串以處理服務器響應。
對於影像服務,當我看到轉換的字符串,它是這樣開始的: 「的GIF89a ?? ...」
這是一個靜態的GIF文件。
我不能夠顯示在ImageView的形象,我已經試過,我在網絡上找到不同的東西:
public void onPhotoFinished (String responseData) {
InputStream is = new ByteArrayInputStream(responseData.getBytes());
Bitmap bm = BitmapFactory.decodeStream(is);
userImage.setImageBitmap(bm);
}
這是別的東西,我自己也嘗試:
public void onPhotoFinished (String responseData) {
InputStream is = new ByteArrayInputStream(responseData.getBytes());
final Bitmap bm = BitmapFactory.decodeStream(new BufferedInputStream(is));
userImage.setImageBitmap(bm);
}
這還沒有作品:
public void onPhotoFinished (String responseData) {
InputStream is = new ByteArrayInputStream(responseData.getBytes());
Drawable d = Drawable.createFromStream(is, "src name");
userImage.setImageDrawable(d);
}
最後,這並不工作之一:
public void onPhotoFinished (String responseData) {
Bitmap bm = BitmapFactory.decodeByteArray(responseData.getBytes(), 0, responseData.getBytes().length);
userImage.setImageBitmap(bm);
}
在logcat中我收到 「decoder->解碼返回false」
似乎沒有任何工作...的什麼是錯的任何想法?
謝謝!
你當然應該被使用二進制數據結構爲您的圖像數據,而不是字符串?如果它是一個GIF,那麼你需要一個神解碼器 - 谷歌一個。 – davidfrancis 2012-08-14 22:21:15
甚至Gif解碼器 - 該死的iPhone自動更正 – davidfrancis 2012-08-14 22:21:44
你是說BitmapFactory.decode不適用於GIF文件?這是一個靜態的gif。謝謝你的回答。 – Spike777 2012-08-17 20:49:46