2012-11-29 21 views
0

我從谷歌地圖靜態API下載靜態地圖。當我用瀏覽器下載圖片時,尺寸是可以的(728x224)。您可以從下面檢查網址。下載的圖片不適合ImageView雖然尺寸應該是好的(novoda)

但是,當我嘗試在我的Android應用程序中查看它是小(540x166)。當然,我可以用'centerCrop'來顯示它,但這不是理想的解決方案。據我所知,兩種尺寸都是以像素爲單位的,所以它應該完全適合。我登錄這樣說:

Log.i(TAG, "view size: "+mapPicture.getWidth()+"/"+mapPicture.getHeight()); 
Log.i(TAG, "pic size: "+mapPicture.getDrawable().getIntrinsicWidth()+"/"+mapPicture.getDrawable().getIntrinsicHeight()); 

而且logcat的是這樣的:

11-29 21:41:37.547: I/DetailsFragment(18064): view size: 728/224 
11-29 21:41:37.547: I/DetailsFragment(18064): http://maps.google.com/maps/api/staticmap?center=0,0&zoom=3&size=364x112&scale=2&sensor=false 
11-29 21:41:37.547: I/DetailsFragment(18064): pic size: 540/166 

我下載的圖片與ImageManager和測試華電國際設備上。

那麼爲什麼下載的圖片大小不同呢?

編輯: 當我下載圖像的兩倍大,ImageView內繪製幾乎是相同的大小如以前:pic size: 540/189

http://maps.google.com/maps/api/staticmap?center=52.2396,21.0174&zoom=14&size=729x225&scale=2&sensor=false

回答

1

你從here閱讀本?

注意:此前JELLY_BEAN,此功能將無法正常獲取 最終配置密度的時候,這裏傳遞的資源ID是 別名到另一個可繪製資源。這意味着如果別名資源的密度 配置與實際的 資源不同,則返回的Drawable的密度將不正確,導致縮放比例不正確 。要解決此問題,您可以改爲通過TypedArray.getDrawable檢索Drawable。使用 Context.obtainStyledAttributes含感興趣的資源 ID陣列創建TypedArray

+0

不,我沒有。我想我必須閱讀5次以瞭解此解決方法。但它看起來像是我的問題的確切解釋。 –

+0

所以novoda ImageManager下載圖像,使用你提到的功能來繪製。這是問題出現的地方。如果不更改加載器後面的代碼,我將無法解決它。它縮小了,當我使用'centerCrop'再次放大時會導致質量損失。這很奇怪。無論如何,如果你能想出一個解決方案(而不是簡單地下載更高分辨率的圖像),我會很感激 –

相關問題