如何创建漂亮的drawables。

时间:2011-11-21 15:16:56

标签: android

对于我的应用,我需要几个小图标。我把它们放在布局xml文件中的大小为15dp * 15dp。问题是它们在设备上看起来不太好。如果我看一下标准的android图标,例如为了刷新,它们看起来非常清晰。

我做的是,我用Gimp创建了一个15 * 15像素的图像并尝试使用它。我想这不是一个很好的方法,因为15dp!= 15 px,对吗?创建漂亮,美观的图标的常用工作流程是什么,即使它们需要很小?

2 个答案:

答案 0 :(得分:13)

与密度无关的像素(即XML中的dipdp)旨在通过将UI缩放为在每个设备上看起来大致相同的大小来跨设备提供更一致的视觉外观。这与物理尺寸缩放不完全相同,而是与屏幕的像素密度(dpi)完全相同。任何设备基本上都有四个桶(ldpi,mdpi,hdpi,xhdpi)。 dp单位是在mdpi之后建模的,而所有其他存储桶都是来自那里的比例因子。换句话说,15dp在mdpi设备上等于15px,但在其他设备上则不等。

为获得最佳性能,您需要做的是创建四种尺寸的图标,并将它们放在相应的drawable/目录中。例如,使用15dp图标,您应该:

  • res / drawable-ldpi文件夹中的12x12像素图像(LDPI是MDPI的75%)
  • res / drawable-mdpi文件夹中的15x15px图像(MDPI是基础)
  • res / drawable-hdpi文件夹中的23x23px图像(HDPI是MDPI的150%)
  • res / drawable-xhdpi文件夹中的30x30像素图像(XHDPI是MDPI的200%)

应用程序将获取适当的资产以匹配您运行的设备的分辨率。如果您没有为每个级别创建资产,应用程序将采用最接近的匹配并向上或向下扩展(您可能正在使用HDPI设备进行测试,并且您的15px图像已扩展到23像素,导致像素化)。 / p>

HTH!

答案 1 :(得分:1)

根据this page,dp是与比例无关的像素单位:160dp总是在屏幕上显示1英寸。这应该回答你的问题是否像素是dp:只有屏幕支持160dpi的情况。这远远超过例如这些天通常的PC屏幕(96 dpi)。