2012-08-13 71 views
1

當您獲得捆綁的圖形資源時,將它們放置在drawable-hdpi,drawable-xhdpi等中,以便根據設備的DPI加載正確的圖像。Android:根據DPI請求外部圖像

處理從網絡請求的外部圖像時的標準是什麼?

我想到的解決方案是使用配置限定符在資源文件夾中定義URL。例如。

values-ldpi 
-- http://website.com/logo24x24.jpg 
values-mdpi 
-- http://website.com/logo32x32.jpg 
values-hdpi 
-- http://website.com/logo48x48.jpg 
values-xhdpi 
-- http://website.com/logo64x64.jpg 

然後在佈局XML中將圖像定義爲32x32dp。

這樣做的常見方法是什麼?以編程方式執行而不是使用配置限定符?

回答

0

如果您有能力運行servlet(或任何服務器端邏輯),最好將DPI作爲參數發送並決定服務器上的文件名。 這將允許更改更容易,而無需更新客戶端,也將減輕在客戶端編寫一長串值的過程。

+0

感謝。我選擇了每個主密度組(120,160,240,320)的靜態圖形。如果存在無法識別的密度,我可能會將htaccess規則編寫爲默認hdpi。我將tvdpi視爲hdpi。文件命名如下所示:image_32dpx32dp_240dpi.png將爲48px x 48px。 – bdls 2012-08-21 11:26:41

0
WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE); 
       Display display = wm.getDefaultDisplay(); 
       int width = display.getWidth(); 


       URL url = null; 

       if (width < 360) { 
        url = new URL(start + "source/images/thumbnails/mid/" + urls.get(i)); 
       } else if (width < 1280) { 
        url = new URL(start + "source/images/thumbnails/big/" + urls.get(i)); 
       } else if (width < 1920){ 
        url = new URL(start + "source/images/" + urls.get(i)); 
       } 

它是基於自己的意見,ü可以使用不同大小