android - 可绘制文件夹 - 我需要什么分辨率

标签 android android-layout

我在应用程序中使用的所有图像都位于一个文件夹 ->drawable-hdpi 中。我使用它们作为按钮、布局和一些 ImageView 的背景。这些图像的尺寸从 50x50 像素到 900x900 像素不等。

我根据屏幕尺寸(以像素为单位)计算按钮和其他控件的尺寸(以像素为单位)。

伪代码:

 screenWidth = getScreenWidthInPixels();
 screenHeight = getScreenHeightInPixels();

 myButtons.setHeight(screenHeight * 0.1); //buttonHeight = 10 % of screenHeight
 ......
 ...
 ..

我希望我的图像质量(按钮背景、 ImageView 、布局背景……)在所有设备上都具有良好的质量。 现在有 5 个不同的可绘制文件夹。据我所知,我现在可以将我的drawable-hdpi文件夹中已有的相同图像放入其他四个drawable文件夹中,但分辨率不同。 我现在想要弄清楚的是我必须为哪个文件夹选择什么分辨率。正如我所说,我的图像分辨率现在从 50x50px 到 900x900px。

最佳答案

以下是 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 缩放 向下 很好,但不如预先设定尺寸的图像)。
现在我想 xxhdpi 分辨率就足够了,但是明天......
它会在 xxxhdpi 屏幕上向上缩放,但结果不太好(可见像素化)。

一种解决方案是使用 svg 图形(这是一种基于 xml 的矢量标准),但您需要一个外部库(有几个开源/免费 - 您选择最适合的一个)来渲染它们标准控件。

关于android - 可绘制文件夹 - 我需要什么分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22567359/

相关文章:

android - 将文件从系统存储(/data/data...)复制到外部存储

android - 如何使用具有功能模块结构的 Realm ?

android - 如何使用数组列表中的数据填充自定义布局 ListView

java - Android 用 Html.fromHtml 范围替换所有出现的文本

android - 在 android : "The method getWindowManager is undefined" 上获取窗口大小时出错

android - 如何删除 ListView 中的边框?

android - 如何在选择器中的 View 范围内保持链式 react ?

android - 提供方法依赖

Android:如何创建一个接收器来监听系统设置的任何变化?

android 布局重叠 ListView 和 LinearLayout