如何动态地将图像放在可绘制文件夹中

时间:2017-08-16 19:14:40

标签: android performance android-layout android-fragments android-drawable

我将从xxxhdpixxhdpixhdpihdpimdpi获取服务器中的5张不同图片。 URL将是这样的。

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

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

有什么方法可以将这些图像放在可绘制的文件夹中。这样每个设备都会根据其密度来拾取图像。我用谷歌搜索但无法找到任何方法来实现这一点。

或者如果采用不同的方法,从服务器获取1个大图像,那么在较小的设备上它会产生滞后。

2 个答案:

答案 0 :(得分:3)

  

有什么方法可以将这些图像放在可绘制的文件夹中。

不在运行时。资源和资产在运行时是只读的。

答案 1 :(得分:2)

您可以通过以下方式检查设备的密度:

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

并根据密度选择图像 的被修改
或者你也可以这样做:

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