我正在为安卓开发一款游戏,我现在正在处理菜单屏幕。 我将使用我自己的可绘制对象作为按钮,我只是想知道是否(以及如何)从资源的不同区域拉取单个可绘制对象。
也就是说,我有按钮叠加层、红色按钮底层和灰色底层,都在同一个资源上,我想知道是否需要将它们分成三个不同的资源并使用它们,或者我可以从资源的不同区域提取吗?
最佳答案
听起来您想使用一种称为 CSS 平铺的技术。 Android 没有对 CSS 功能的内置支持,其中可以指定图像资源的边界并指定重复的 X/Y 方向。
但是,在 Android 和 Java 之间,程序员几乎可以对现有位图或他们即时创建的位图做任何他们想做的事情。在 Android 中,可以“钳制”图像,因此只渲染图像的特定区域。我在 Center a bitmap and repeat the edge pixel 的答案中找到了一个链接示例.链接文章中使用的技术类似于您尝试执行的操作。
虽然它是可行的,但它在 Android 中不如在 CSS 中实用。例如,如果您使用上述技术,稍后需要更改资源图像中的某些内容:您还必须管理使资源在您的应用程序中正常工作的代码。另一种方法是必须手动“剪切”图像(是的,正如您所建议的那样,将其剪切为多个资源),这最终可能会更好。例如,如果您需要将该资源设为 9-PNG 或对其进行其他更改:您的工作仅限于 Photoshop,不需要任何 Java 编写、代码编译,因此可能需要较少的回归测试.
关于android - 来自同一资源图像的多个可绘制对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9918969/