为每个android可绘制屏幕密度(hdpi,ldpi,xhdpi等)缩放图像的推荐方法是什么?我们应该使用源图像分辨率作为最高密度(xxhdpi)的分辨率并从那里进行缩放吗?在我的情况下,我明确地将布局中的图像大小设置为50 x 50 dp,那么我应该缩放drawable以使我的mdpi为50x50并基于其他分辨率?
PS:为什么我们必须手动缩放drawables,如果它们在放置时会被缩放(它效率低/干净吗?)
答案 0 :(得分:2)
Should we use the source image resolution as the resolution for the highest density (xxhdpi) and scale from there?
是:为了获得更好的质量,您最好准备最高分辨率的图像并缩放向下。
In my case I am explicitly setting the size of the image in the layout to 50 x 50 dp, so should I scale the drawable so that my mdpi is 50x50 and base the other resolutions around that?
是。使用比例因子乘数来确定其他分辨率大小(ldpi为0.75,mdpi为1,hdpi为1.5,xhdpi为2,xxhdpi为3,xxxhdpi为4)
Why do we have to scale drawables manually if they will get scaled anyways when being placed (is it less efficient/clean?)
是。您可以使Android免于进行缩放工作(性能,微观级别)。并且具有更好的整体质量(更清洁)。
答案 1 :(得分:0)
推荐的方法是拥有所有文件夹:
在每个文件夹中重复绘制相应的分辨率和相同名称。 Android将根据设备分辨率知道将使用哪一个。它不会扩展它们。
PS:如果您有正确的文件夹结构,则不会以编程方式缩放图像。所以它会更有效率。在高分辨率设备中缩放低分辨率可绘制将导致像素化可绘制。反之亦然,它看起来也很糟糕。