我从API获取大图像,需要调整大小以适应不同的屏幕类型。
通过将MDPI分辨率与屏幕密度相乘来调整大小是一种很好的方法吗?
我实施了这种方法并对其进行了测试,到目前为止它仍然有效。我想知道这是否是一个很好的方法,我可以适用于整个项目。
因此,如果MDPI大小为100px,在MDPI屏幕上看起来没问题,我将使用MDPI_SIZE * getScreenDensity()
调整其他类型的图像,后面的方法看起来像
public static float getScreenDensity(Context context) {
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
return metrics.density;
}
因此,XHDPI上的图像大小为200dp,XXHDPI 300dp等等。当然,所有这些都是以编程方式设置的。
答案 0 :(得分:1)
是的,我使用的东西与此非常相似(但 svg图形,矢量)。
当然,您的图像需要具有良好的mdpi分辨率,才能与此系统一起扩展。
BUT!您最好缩放 DOWN ,以获得更高质量的结果 或者,mdpi中的1 * 1像素将缩放为xxhdpi中的3 * 3像素。
因此,您最好下载适合xxhdpi屏幕的图像,然后将其缩小 对于xhdpi,您的比例因子 0.667 ,对于hdpi, 0.5 ,对于mdpi, 0.333 ,对于ldpi, 0.25 。