我在我的应用中使用的所有图片都位于一个文件夹中 - >绘制,华电国际。我使用它们作为我的按钮的背景,我的布局和一些imageViews。这些图像具有从50x50px到900x900px的所有不同尺寸。
我根据屏幕尺寸(以像素为单位)计算我的按钮和其他控件的大小(以像素为单位)。
的伪代码:
screenWidth = getScreenWidthInPixels();
screenHeight = getScreenHeightInPixels();
myButtons.setHeight(screenHeight * 0.1); //buttonHeight = 10 % of screenHeight
......
...
..
我希望我的图像质量(按钮背景,图像视图,布局背景......)在所有设备上都很好。 现在有5个不同的可绘制文件夹。据我所知,我现在可以将我已经拥有的相同图像放在其他四个可绘制文件夹中的drawable-hdpi文件夹中但具有不同的分辨率。 我现在想要解决的是我必须选择哪个文件夹的分辨率。就像我说的那样,我的图像现在的分辨率从50x50px到900x900px。
答案 0 :(得分:2)
这些是dpi中的分辨率:
ldpi: 120 dpi
mdpi: 160 dpi
hdpi: 240 dpi
xhdpi: 320 dpi
xxhdpi: 480 dpi
xxxhdpi: 640 dpi
您必须根据结果计算尺寸(
)比例因子:
ldpi: 0.75
mdpi: 1.0
hdpi: 1.5
xhdpi: 2.0
xxhdpi: 3.0
xxxhdpi: 4.0
你可以拥有xxxhdpi文件夹中的所有图片并让Android缩小它们...但并不总是你得到不错的结果(Android缩放 DOWN 是好的,但不是好像预先大小的图像)
现在我猜xxhdpi分辨率已经足够,但明天......
它将在xxxhdpi屏幕上缩放 UP ,结果不太好(可见像素化)。
解决方案是使用svg图形(这是一个基于xml的矢量标准),但你需要一个外部库(有几个开源/免费 - 你选择最合适的一个)来渲染他们在标准控制中。
答案 1 :(得分:0)
检查这些链接。它有关于每个密度的详细信息
答案 2 :(得分:0)
如果你在mdpi中有100 * 100像素的icom,那么:
(3:4:6:8)
mdpi(4)= 100 * 100像素(默认图像)
hdpi(6)=(100 * 6)/ 4 = 150 * 150 px
xhdpi(8)=(100 * 8)/ 4 = 200 * 200 px或(150 * 8)/ 6 = 200 * 200