我試圖從URL顯示圖像,該圖像可能大於屏幕尺寸。我有這種工作,但我希望它適合屏幕,並且當屏幕方向改變時我也有問題。圖像很小,我希望它的寬度也可以縮放到屏幕上。 (在這兩種情況下,我想的圖像,以填補滾動屏幕的寬度(如果必要的高度)從URL顯示圖像 - 尺寸和屏幕方向問題
這是我的ImageView:
<ImageView android:id="@+id/ImageView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:adjustViewBounds="true">
</ImageView>
這裏是一個加載圖像的Java代碼: (爲簡單起見,刪除了一些錯誤處理代碼)
Object content = null;
try{
URL url = new URL("http://farm1.static.flickr.com/150/399390737_7a3d508730_b.jpg");
content = url.getContent();
}
catch(Exception ex)
{
ex.printStackTrace();
}
InputStream is = (InputStream)content;
Drawable image = Drawable.createFromStream(is, "src");
Image01.setImageDrawable(image);
我已經爲Android嘗試不同的設置:。scaleType我很抱歉,如果這個問題已經問過我已經通過關於這一主題的的教程了,但他們似乎不適合我,不確定它是否有任何問題g處理圖像的加載方式。 (從網絡而不是本地資源)
另一個問題是,有時圖像不會加載。沒有運行時錯誤,我在ImageView中什麼都沒有。
如果您需要更多信息或澄清,請讓我知道。
感謝您與最小和最大寬度的幫助內財產。這樣做的竅門,雖然我需要將ImageView放入ScrollView中,如果設置寬度導致圖像超出可用高度。 – RMS2 2010-08-30 21:05:35
現在,至於沒有下載的圖像(我使用Joregsys的代碼),我遇到了各種麻煩。看起來,當圖像不顯示時,發生的情況是當執行.createFromStream方法時出現「SkImageDecoder :: Factory返回null」錯誤。有時候它有效,有時我可以得到。我試着關閉InputStream來刷新緩衝區,但沒有去。我試過在一段時間(d == null)循環中封裝這些代碼行,但隨後我得到了一個無限循環。 – RMS2 2010-08-30 21:05:53
我在旋轉屏幕時也遇到內存問題。如果第一次加載圖像,當方向改變時,我會得到一個OutOfMemoryError。圖片爲1MB - 數碼照片比較小,但對於Android來說可能太大了?我想我正在發生內存泄漏。我試過Image01.getDrawable()。setCallback(null);在活動的onDestroy()中,但這沒有幫助。 – RMS2 2010-08-30 21:07:55