Android应用程序需要多少9patch图像?

时间:2013-05-01 07:07:46

标签: android android-layout

我正在为我的应用使用9patch图像。我把它们放在可绘制的文件夹中而不是hdpi,xdpi,....但是当我在不同的密度设备中检查图像时,它似乎很模糊。

我应该为所有htpi,ldpi,mdpi,xdpi创建9patch图像吗?如果我为我的应用程序使用了很多图像,我认为应用程序的大小会增加。那么使用很多图像不是问题吗? 感谢

3 个答案:

答案 0 :(得分:1)

根据android开发者文档,您需要指定不同的图像

如果您需要准确控制应用程序在各种屏幕配置上的外观,请在配置特定的资源目录中调整布局和位图可绘制内容。

例如,请考虑要在中高密度屏幕上显示的图标。只需创建两种不同尺寸的图标(例如 100x100用于中等密度, 150x150用于高密度),并使用适当的限定符将这两种变体放在相应的目录中:

res/drawable-mdpi/icon.png   //for medium-density screens
res/drawable-hdpi/icon.png   //for high-density screens

答案 1 :(得分:1)

取决于

如果您只想防止图像模糊,请将其移至 drawable-nodpi 文件夹(如果不存在则创建它),但这会导致9补丁中的部分未标记为可拉伸的图像与图像中的像素大小完全相同(因此在不同的像素密度上看起来不同)。

如果您的区域在所有物体上都应该看起来相似(例如角半径),那么请创建多重9patch图像并将它们放在相应的文件夹中。


仅供参考:如果9patch图像不在drawable-nodpi文件夹中,则会在拉伸到容器尺寸之前将其缩放到图像密度,导致9patch图像在更高的dpi设备上变得模糊。

示例:您有一个设备具有320dpi设备和一个10 * 10px 9patch图像,其中mdpi文件夹(160dpi)中的角半径为2px,您要将其应用于100 * 40px按钮。在拉伸9patch指示区域以适应100 * 40px按钮之前,Android会将图像缩放到20 * 20像素(包括现在半径为4像素,但显得模糊)。

希望这可以解决问题。

答案 2 :(得分:0)

没有。所有尺寸的图像都足够了。 9补丁图像可以伸展到任何你想要的尺寸。那是9补丁图片的唯一用途。但你不能把所有的图像作为九个补丁图像。线条,边框,普通图像等独特图像。为什么因为您只提取某些点的图像。因此,如果您拉伸图像取决于某些点,图像看起来应该与图像的外观相同。

有关详细信息,请参阅here

我希望我能正确地解释。