对于我的应用,我需要几个小图标。我将它们放在布局xml文件中,大小为15dp * 15dp。问题是它们在设备上看起来不是很好。如果我看一下标准的android图标,比如刷新,它们看起来非常锐利。
我所做的是,我用Gimp创建了一个15*15像素的图像,并尝试使用它。我想这不是一个好的方法,因为15dp != 15px,对吧?创建漂亮、好看的图标,即使它们需要很小,通常的工作流程是什么?
发布于 2011-11-21 23:45:34
密度无关的像素(即dip或dp )旨在通过将UI缩放为在每个设备上看起来大致相同的大小,在不同设备之间提供更一致的视觉外观。这并不完全等同于物理尺寸缩放,而是屏幕的像素密度(dpi)。基本上,任何设备都可以落入四个存储桶(ldpi,mdpi,hdpi,xhdpi)。dp单元是以mdpi为模型的,所有其他的存储桶都是那里的比例因子。换句话说,15dp在mdpi设备上确实等于15px,但在其他设备上不等于15px。
要获得最佳性能,您需要做的是创建四种大小的图标,并将它们放在相应的drawable/目录中。例如,使用15dp图标时,您应该具有:
F213
应用程序将获取与您运行的设备的分辨率相匹配的适当资产。如果您没有为每个级别创建资源,应用程序将采用最接近的匹配并将其放大或缩小(您可能正在使用HDPI设备进行测试,而您的15px图像被放大到23px,从而导致像素化)。
哈!
发布于 2011-11-21 23:26:49
根据this page的说法,dp是与比例无关的像素单位: 160dp总是在屏幕上显示1英寸。这应该会回答你的问题,无论像素是不是dp :只有支持160dpi的屏幕才是这样。这比现在常见的PC屏幕(96dpi)要多得多。
https://stackoverflow.com/questions/8214016
复制相似问题