Android: 9-patch 图像周围的点和线?

标签 android

我正在尝试使用附加的 9-patch 图像作为我应用程序中 View 的背景(图像来自 android-15 sdk 资源)。如图所示,图像左侧有两个垂直点,图像上方有两个水平点,图像下方有水平线。图像中的这些点/线显示在我的应用程序中。

我将文件从 sdk 文件夹复制到我的资源目录,并将可绘制资源设置为我 View 的背景。使用此图像作为 View 背景的正确方法是什么,这样点/线就不会显示?

enter image description here

最佳答案

通过可拉伸(stretch)补丁,您基本上是在告诉 Android 您想要重复图像中的哪些像素行和列。当你拉伸(stretch)标准图像时,有两种可能:一种是按比例缩放,但由于插值仍然会失去清晰度;第二,它不成比例地缩放,不仅失去了锐度,而且失去了形状。下面是不成比例缩放的示例:

enter image description here

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

enter image description here

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

enter image description here

关于Android: 9-patch 图像周围的点和线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8850590/

相关文章:

ListView 中的 Android WebView onclick 事件问题

android - 如何在 onSaveInstanceState 中使用变量

java.lang.IndexOutOfBoundsException : setSpan (N . .. N) 结束超过长度 10500

Java自定义注解/装饰器@Testing

android运行时命令问题

Android BroadCast 接收器和 GMC

java - 从类创建对象。保存对象。从第三类调用对象

android - 无法从蓝牙麦克风获取音频

android - 在 Android 的 EditText View 中允许多行吗?

java - 抽屉导航在单击事件时关闭