我为我的Android应用程序准备了图像。由于设备尺寸不同,我将具有不同尺寸的图像放到可绘制文件夹中。现在我想从网址获取这些内容。我想获得最适合设备尺寸的图像。我该怎么做?有什么建议吗?
答案 0 :(得分:1)
从api,你需要发送URI到各种大小的图像,然后在Android中你需要下载适合设备的dpi值的图像,其代码是这样的:
您可以像这样获得设备的密度值
float density = Resources.getSystem().getDisplayMetrics().density * 160f;
或
float density = context.getResources().getDisplayMetrics().density * 160f;
然后你会执行一系列if else语句并从服务器下载相应的图像。
if (density == DisplayMetrics.DENSITY_HIGH) {
return downloadLargeImage();
} else if (density == DisplayMetrics.DENSITY_MEDIUM) {
return downloadMediumImage();
} else if (density == DisplayMetrics.DENSITY_LOW) {
return downloadSmallImage();
} else {
return downloadMediumImage();
}
有更多的密度值,你可以运行if else循环,我通常只处理这3个案例
或者还有另一种方法,您可以做的是将设备密度值连同图像的获取请求一起发送到服务器,如果在服务器上进行计算并返回相应的图像文件,则执行此操作。
两种方法实际上是相同的,但第二种方法在语义上是错误的,您的服务器不应该决定发送哪个图像,而是您的设备确定要下载的图像大小