android - 来自同一资源图像的多个可绘制对象

标签 android button resources drawable

我正在为安卓开发一款游戏,我现在正在处理菜单屏幕。 我将使用我自己的可绘制对象作为按钮,我只是想知道是否(以及如何)从资源的不同区域拉取单个可绘制对象。

也就是说,我有按钮叠加层、红色按钮底层和灰色底层,都在同一个资源上,我想知道是否需要将它们分成三个不同的资源并使用它们,或者我可以从资源的不同区域提取吗?

最佳答案

听起来您想使用一种称为 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/

相关文章:

android - 我的图层列表可绘制有什么问题?

android - 在Android中分类原始文件夹?

c# - 为什么 resourceReader.GetResourceData 返回偏移 4 的类型 "ResourceTypeCode.Stream"的数据

c# - 跟踪按钮点击次数

html - 如何让div图片相互对齐

jquery - 使用 jQuery 在内容之间切换

iphone - Xcode 框架资源处理

java - 如果使用 loadData 加载 html 文本,WebView 超链接单击不起作用

android - 如何通过获取其 PID 而不使用 awk 来终止 unix 进程?

java - 在 Android 中禁用相机