Android 张来自 url 的不同尺寸的图片
Android images from url with different sizes
我为 android 应用准备了图片。由于设备尺寸不同,我将尺寸不同的图像放入可绘制文件夹中。现在我想从 url 获取这些。我想获得最适合设备尺寸的图像。我应该怎么做?有什么建议吗?
从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 种情况
或者还有另一种方式,你可以做的是将设备密度值连同对图像的获取请求一起发送到服务器,并在服务器上执行if else计算和return适当的图像文件。
这两种方法实际上是相同的,但是第二种方法在语义上是错误的,您的服务器不应该决定发送哪张图片,而是由您的设备决定下载哪种图片大小
我为 android 应用准备了图片。由于设备尺寸不同,我将尺寸不同的图像放入可绘制文件夹中。现在我想从 url 获取这些。我想获得最适合设备尺寸的图像。我应该怎么做?有什么建议吗?
从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 种情况
或者还有另一种方式,你可以做的是将设备密度值连同对图像的获取请求一起发送到服务器,并在服务器上执行if else计算和return适当的图像文件。
这两种方法实际上是相同的,但是第二种方法在语义上是错误的,您的服务器不应该决定发送哪张图片,而是由您的设备决定下载哪种图片大小