1

我會從服務器獲取5倍不同的圖像,將在xxxhdpixxhdpixhdpihdpimdpi。 URL將是這樣的。如何把圖像繪製文件夾動態

  • http://www.abctest.com/image-xxxhdpi.jpg

  • http://www.abctest.com/image-hdpi.jpg

有什麼辦法,我可以把這些圖像繪製文件夾中。這樣每臺設備將根據其密度來拾取圖像。我google搜索,但無法找到任何方法來實現這一目標。

或者如果轉到不同的方法,並從服務器獲得1個大圖像,那麼在較小的設備上,它會造成滯後。

回答

2

您可以通過此檢查設備的密度。
編輯
或者你也可以這樣做:

float density = getResources().getDisplayMetrics().density; 
// return 0.75 if it's LDPI 
// return 1.0 if it's MDPI 
// return 1.5 if it's HDPI 
// return 2.0 if it's XHDPI 
// return 3.0 if it's XXHDPI 
// return 4.0 if it's XXXHDPI 
3

有什麼辦法可以把這些圖像放在可繪製的文件夾中。

不在運行時。資源和資產在運行時是隻讀的。基於密度

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics);  
int screenDensity = metrics.densityDpi; 

,並選擇圖片:

+0

謝謝,那麼我應該怎麼辦?我會從服務器獲得'1'或'5'background圖像,如果我不把它們放在drawable中,那麼我需要創建檢查屏幕密度像素,並根據任何檢查我將加載不同的圖像,或者是還有其他更好的方法嗎? – Kirmani88

+0

@ Kirmani88:「那麼我需要創建檢查屏幕密度像素,並根據任何檢查我將加載一個不同的圖像」 - 正確。 [Chirag顯示識別密度的代碼](https://stackoverflow.com/a/45721489/115145)。 – CommonsWare

+0

非常感謝 – Kirmani88

相關問題