Android Draw 9补丁工具:图外黑线是什么意思

2024-03-06

我尽力在谷歌和安卓中找到这个问题。也做了几次尝试和错误,但无法得到这个问题。 我正在学习 Android 的“Draw Nine Patch”图像。我知道的一个基本原则是,您处理的任何图像都必须采用 .png 格式(如果它已经是 .9.png 那么它将被工具忽略)。然而,

  1. 我无法理解“可拉伸补丁”的字面意思是什么?
  2. 当您在 .png 图像之外绘制黑点时,到底会发生什么? (预览窗格显示正在发生的变化,但我不清楚它是如何实现这些变化的)
  3. 当我在图像的左侧/顶部绘制黑点时,它会在预览中显示一些变化;但是为什么当您在图像的右侧/底部执行相同操作时没有任何效果?
  4. 当我们尝试对图像本身进行处理时,为什么该工具主要用于背景?
  5. 我正在尝试修改一个简单的button.png(在android sdk中给出)。每当我使用此工具并绘制黑线时,它都会减小图像的大小而不是“拉伸”它!为什么 ?
  6. 下面给出的选项(如“显示锁定”、“显示内容”、“补丁比例”等)的意义是什么?

我很抱歉问了这么多问题,但在 Android 在线文档中,他们没有为新手很好地解释。如果有人能够回答这些问题,那么它将成为所有搜索本论坛的初学者的参考。


By stretchable patches, you're basically telling Android which rows and columns of pixels in the image that you want to repeat. When you stretch a standard image, there are two possibilities: One, it is scaled proportionally, but still loses sharpness due to interpolation; Two, it is scaled disproportionately, and loses not only its sharpness, but its shape as well. An example of a disproportionate scaling is below:
stretched

因此,黑线的目的是告诉 Android 图像的哪些区域可以安全重复。顶角定义了可以拉伸的列,而左上角定义了可以拉伸的行。底角和右上角仅定义实际内容区域(例如,允许按钮放置文本的位置),您可以保留额外的空间来填充框架。在下图中,您可以看到框架外部的两个黑色像素定义了图像上的行,而顶部的黑色像素定义了列。

下面显示了 9 个补丁拉伸到各种尺寸的结果。如果放大得更宽,则定义的可拉伸列左右两侧的图像将与新尺寸的左右对齐,并重复定义的列以填充之间的空间。定义的行也会发生同样的情况;如果你使用多个(我不相信你可以使用超过 2 个拉伸行/列),它只会用它们均匀地填充空间;在本例中,我用它来保持渐变在中间均匀分布。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Draw 9补丁工具:图外黑线是什么意思 的相关文章

随机推荐

  • 是否可以手动销毁SurfaceView?

    即使调用活动的 onPause 我的 SurfaceView 也不会被破坏 我正在处理中的线程 public void surfaceCreated SurfaceHolder holder if mGameThread getState
  • R Shiny:通过循环添加到绘图

    我正在尝试创建一个使用 Shiny 显示采样方式动画的应用程序 与所示示例类似的内容here http onlinestatbook com stat sim sampling dist 这是一些最小的代码 仅显示我遇到问题的部分 这不是我
  • CakePHP 链接 css 文件和 javascript 文件

    如何将 css 文件和 javascript jquery 文件链接到控制器 视图 我正在使用 CakePHP 1 3 并在网上找到了以下代码 但我似乎无法弄清楚将其放在哪里 其次 将名为 css file 的 css 文件放在哪里 任何帮
  • OSX Play 框架自动重新加载

    我已经在互联网上搜索了几个小时 有很多 有用 的建议 但只会带来问题 这就是我 几乎一模一样 在docker容器中播放框架自动加载 https stackoverflow com questions 26022395 play framew
  • Ansible - 包含来自远程主机的 vars 文件

    我想包含远程主机上文件中的变量 而不是 Ansible 运行的控制机上的变量 例如我有一个文件 var database credentials yml 在我的网络服务器上 将该文件中的变量添加到主机变量以便我可以在模板中使用它们的最佳方法
  • 如何在 Eclipse 中通过远程 Java 应用程序调试来调试 Groovy 代码

    我正在努力调试一个构建为 Sling 捆绑包的应用程序 该应用程序几乎完全是 Groovy 代码 我有 Groovy Eclipse 插件 Eclipse 使用 Maven 正在构建 jar 并将其安装在 Sling 中 没有任何问题 但是
  • 将链接放入 console.log() 中。 Node.js

    我想做这样的事情 console log Your server available at a href localhost 3000 a 但不幸的是节点控制台无法识别 a 标签 有什么想法如何将链接放入节点控制台吗 您无法让终端解释 HT
  • -不再支持webkit-text-size-adjust,如何将font-size设置为小于12px

    当我将 chrome 更新为28 0 1500 11 开发 m 我找到 webkit text size adjust none 不再支持 我在这里找到了 changlisthttp trac webkit org changeset 14
  • 与 MySQL 电话号码数据库作斗争

    我的应用程序想要存储一个列表国际电话号码在 mysql 数据库中 然后应用程序需要查询数据库并搜索特定号码 听起来很简单 但实际上是一个很大的问题 因为用户可以以不同的格式搜索该号码 所以我们每次都必须对数据库进行完整扫描 例如 我们可能将
  • 开始浏览时发送的第一个数据包

    想象一下用户坐在一台连接以太网的电脑前 他打开了浏览器 他在地址栏中输入 www google com 并按回车键 现在告诉我以太网上出现的第一个数据包是什么 我在这里找到了这个问题 Socket编程和多线程面试题 https stacko
  • 如何使用 bash 从单独的文件中粘贴列?

    使用以下数据 cat date1 csv Bob 2013 06 03T17 18 07 James 2013 06 03T17 18 07 Kevin 2013 06 03T17 18 07 cat date2 csv 2012 12 0
  • haml 中的内联标签

    在html中 你可以做这样的事情 p Lorem ipsum dolor sit amet consectetur adipiscing elit Praesent eget aliquet odio Fusce id quam eu au
  • 删除 Azure Devops (VSTS) 中的 git fork 关系

    我通过分叉另一个项目创建了一个 Azure DevOps VSTS 项目 现在 每当我们克隆新项目时 您都会在控制台输出中获得对原始项目的引用 remote This repository is a fork Learn more at h
  • 我可以使用 SVN 或 Mercurial 仅提交部分代码吗?

    我通常使用 Tortoisesvn 但我一直在研究 Mercurial 因为它是一个分布式版本控制系统 在这两个系统中 我正在寻找一种工具 可以让我仅选择文件的一部分并提交它们 如果我现在想这样做 我必须复制到文件的临时版本 并仅保留我想要
  • 内容编码需要注意的事项:gzip

    我创建了一个托管在 S3 存储桶上的静态网站 我的资源文件 css 和 js 文件 已使用 gzip 缩小和压缩 文件名本身是file gz js or file gz css并交付时带有Content Encoding gzip head
  • 用“*”替换最后 4 个字符

    我有一个字符串 我需要用 符号替换该字符串的最后 4 个字符 谁能告诉我该怎么做 一种快速而简单的方法 public static String replaceLastFour String s int length s length Ch
  • MVC EF 将帖子类型和客户类型合二为一

    我有一个类型叫blogpost具有对类型的属性虚拟引用customer public virtual Customer Customer get set 在我的表格中 我发布了blogpost and customer数据到控制器 所有值均
  • Visual C++ 2010 在调试时拒绝显示 std::string 值。显示<错误指针>

    我有一种奇怪的感觉 就像这是最近出现的问题 并且发生在两台不同的计算机上 当我调试并尝试查看 STL 中的 std string 的值时 它显示为值 它说它的大小是15 容量是一些乱码的巨大数字 数组值本身都显示 CXX0030 错误 无法
  • 如何将 Rails 中的自定义环境设置为默认环境?

    i created通过添加新文件在我的 Rails 应用程序中自定义暂存环境config environments staging rb 与 一样config environments development rb然后添加数据库配置conf
  • Android Draw 9补丁工具:图外黑线是什么意思

    我尽力在谷歌和安卓中找到这个问题 也做了几次尝试和错误 但无法得到这个问题 我正在学习 Android 的 Draw Nine Patch 图像 我知道的一个基本原则是 您处理的任何图像都必须采用 png 格式 如果它已经是 9 png 那