如何动态地将图像放入drawable文件夹
How to put images in drawable folder dynamically
我将从服务器获得 5 张不同的图像,它们位于 xxxhdpi
、xxhdpi
、xhdpi
、hdpi
、mdpi
。
URL 将是这样的。
http://www.abctest.com/image-xxxhdpi.jpg
http://www.abctest.com/image-hdpi.jpg
有什么方法可以将这些图像放在可绘制文件夹中。这样每个设备都会根据图像的密度来拾取图像。我用谷歌搜索但无法找到任何方法来实现这一目标。
或者如果采用不同的方法,并从服务器获取 1 个大图像,则在较小的设备上会造成滞后。
Is there any way i can put these images in drawable folder.
不是在运行时。资源和资产在运行时是只读的。
您可以通过以下方式检查设备的密度:
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
我将从服务器获得 5 张不同的图像,它们位于 xxxhdpi
、xxhdpi
、xhdpi
、hdpi
、mdpi
。
URL 将是这样的。
http://www.abctest.com/image-xxxhdpi.jpg
http://www.abctest.com/image-hdpi.jpg
有什么方法可以将这些图像放在可绘制文件夹中。这样每个设备都会根据图像的密度来拾取图像。我用谷歌搜索但无法找到任何方法来实现这一目标。
或者如果采用不同的方法,并从服务器获取 1 个大图像,则在较小的设备上会造成滞后。
Is there any way i can put these images in drawable folder.
不是在运行时。资源和资产在运行时是只读的。
您可以通过以下方式检查设备的密度:
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