9patch大量的资源,而不会丢失质量

我的devise师在Illustrator上工作,并使用脚本将mdpi,hdpi和xhdpi(以及iOS res)的所有资源导出。 对于button和streachables图像,我正在寻找最佳的解决scheme来生成9patches。

到目前为止,我在SDK中使用draw9patch软件来生成9个patch。 它仍然有效,但是认真的说,我希望有更好的办法。 如果在我的项目中,我有20个button,3或4个状态,以及3种密度types,我无法想象这个解决scheme需要的小时数。

解决方法是使用Asset Studio工具,但是我不想提供我的xhdpi文件,并且为其他密度文件夹生成的图像质量很差。 我的目标是为每个密度获得像素完美的9个字符。

我们也尝试使用SVG文件来绘制可伸缩图片,但似乎Asset Studio不接受它们。

如果我的devise者试图直接在Illustrator中创build9patch,他不能使用脚本导出,因为1 px行也将被缩放,并且不会再测量1px。

那么有没有一个解决scheme,使9patches,不失去图像质量,并没有花费十个小时呢?

Solutions Collecting From Web of "9patch大量的资源,而不会丢失质量"

只发现这个东西: http : //android.elex.pe.kr/a-better-9-patch-tool

http://www.youtube.com/watch?v=jqc6c53-byQ

稍后再检查,并告诉它是否工作。

我的解决scheme是花费大量的时间学习draw9patch,然后不需要几个小时就可以制作button。 我自己做了这个,并且受到了影响,但是draw9patch是一个非常简单的方法,每个图像(button)花费的时间不超过15秒。 draw9patch图像应该是伟大的,因为你真的只需要做一次,他们将工作在所有的密度,因为他们将相应地拉伸。 如果你的图片中有文字,那么你还有一个问题。 这是因为你失去了用简单的stings.xml翻译你的应用程序的能力而皱起了眉头

我的解决scheme

在draw9patch上得到真棒

2.不要使用图片的文字。 可以使用draw9patch正确地居中button的文本,这将增加您的应用程序在不同的语言中使用的能力。 东西,可以很容易地提高你的下载/销售。 这一点很重要,因为即使您的应用程序能够再定位一种语言(比方说西class牙语),那么它确实能够使目标受众满意。

下面是一个很好的九补丁编辑器,这为我节省了很多时间: 下载jar链接和一些描述 。 最大的特点是“复制粘贴”function,可以为不同状态下的图像提供相同的可拉伸区域。

我不认为有一些编辑器允许使用不同的图像尺寸,因为不同的屏幕尺寸可能会有很大的差异。

我通过打开每个图像9贴片的图像编辑器(Photoshop / Paint.NET),然后在两个维度上增加2的canvas大小通过我的9代补丁生成。

一旦你完成了这个工作,你可以快速的绘制你的拉伸和填充线。 如果你为100张图片做了这个工作,那么这个过程有点痛苦,但是每个项目只需要完成一次。 我无法想象许多项目中会有那么多的9补丁花费很多时间

如果你真的想简化进程,你可以从9patch中删除填充指标,并使用style属性将它们添加到视图中。

如果我的devise者试图直接在Illustrator中创build9patch,他不能使用脚本导出,因为1 px行也将被缩放,并且不会再测量1px。

这一行让我感到担忧 – 你不应该把mdpi映像扩展到hdpi,它们不会有任何意义。 如果只有一个mdpi图像可用,它将使用它并在运行时自动缩放。

我使用9个补丁主要是绘制button和其他视图的背景。 他们大多数是单色背景,某种2像素分隔符,其中一些是带有分隔符的渐变。 我把它们放在res \ drawable-nodpi文件夹中,这是一个特殊的文件夹,指示android不对其内容执行任何缩放。

到目前为止,我有预期的结果,没有任何问题。 我的2像素分隔符是2个真正的设备像素(不是密度像素)在几个设备从ldpi到hdpi分辨率,这是我想要的。

希望这可以帮助…

那么有没有一个解决scheme,使9patches,不失去图像质量,并没有花费十个小时呢?

步骤#1:编写一个脚本,从一个PNG获取9个补丁信息,并将其应用到另一个PNG,使用任意数量的PNG阅读库作为您喜爱的桌面编程语言

步骤#2:使用draw9patch来获得一个密度的一个图像的规则

步骤#3:使用脚本将这些规则应用于相同密度的状态的其他变化

步骤#4:重复步骤2和3其他密度