我正在開發一款應用程序,該應用程序在啓動後從網上下載圖像並將其顯示在主要活動上。Android如何處理下載圖像的大小?
我的擔心是這個圖像在不同屏幕密度的設備上的大小。
例如:假設我正在下載400x200像素的圖像。它將在Galaxy S(480x800分辨率)和Galaxy S3(1280x720分辨率)上顯示400x200,還是會在Galaxy S3上調整到較大尺寸?
有關如何工作的任何提示以及處理下載圖像時如何與不同屏幕兼容的任何提示?
非常感謝。
我正在開發一款應用程序,該應用程序在啓動後從網上下載圖像並將其顯示在主要活動上。Android如何處理下載圖像的大小?
我的擔心是這個圖像在不同屏幕密度的設備上的大小。
例如:假設我正在下載400x200像素的圖像。它將在Galaxy S(480x800分辨率)和Galaxy S3(1280x720分辨率)上顯示400x200,還是會在Galaxy S3上調整到較大尺寸?
有關如何工作的任何提示以及處理下載圖像時如何與不同屏幕兼容的任何提示?
非常感謝。
假設你在ImageView的顯示圖像,你真的需要關注兩件事情:
的layout_width/layout_height並在您的ImageView的scaleType設置。
Android將按照這些設置來處理放大/縮小。
如果需要,可以動態調整寬度/高度。使用類似於以下代碼的代碼:
// banner image layout adjustment
LayoutParams lp = mImageView.getLayoutParams();
lp.width = mImageView.getDrawable().getIntrinsicWidth() ;
lp.height = mImageView.getDrawable().getIntrinsicHeight() ;
mImageView.setLayoutParams(lp);
但請小心將此視圖保留在某個預定義範圍內。設備屏幕寬度/高度。
除非網站做了一些花哨的用戶代理切換來爲請求的圖像提供不同的分辨率,否則圖像文件應該是相同的。但是,顯示圖像時,將調整其大小以適合屏幕(例如,如果在ImageView中縮放)。由於跨設備的內存限制不同,如果您檢索的圖像未採樣,您可能會在顯示時遇到內存不足錯誤(文件大小保持不變,這只是內存大小,這是此處的問題)。
我更關心顯示大小,因爲圖像很小。我爲這個問題增加了一個例子,使其更加清晰。謝謝。 – 2012-07-30 17:24:37
是的,在這種情況下,它取決於ImageView佈局和屬性而不是源圖像。 – dmon 2012-07-30 17:49:49
這就是我所需要的,謝謝。 – 2012-07-30 17:37:16