【问题标题】:9patch border issues9补丁边界问题
【发布时间】:2010-03-21 05:55:52
【问题描述】:

制作具有单像素边框的 9patch 图像有技巧吗?

我不是在谈论用于定义可拉伸区域和内容区域的单像素黑色边框。我说的是图像本身。如果我创建一个周围有 1 个像素边框的图像,通常 android 会选择其中一个边缘并将其拉伸到 2 个(或有时更多)像素,即使我特意将边缘留在了 draw9patch 中的可拉伸区域之外实用程序。

这是我的意思的截图;在此屏幕截图中,我在具有相同背景图像的垂直 LinearLayout 中有两个按钮。顶部按钮显然有更粗的边框,尽管它不应该。

http://www.vimtips.org/media/button_ss.png

这是屏幕截图按钮(左侧)和实际 9patch 图像(右侧)的特写。

http://vimtips.org/media/images/buttoncmp.png

按钮不是我见过的唯一地方。如果我创建一个具有 1 像素边框的背景图像并将其用作 ListView 行的背景,有时边框看起来是 2 像素而不是 1 像素。

很难让 UI 看起来完全符合这些问题的要求。必须有一种方法让它以你认为应该的方式出现。

【问题讨论】:

  • 如果您能提供一个展示您所描述行为的示例图像,这将非常有帮助。
  • vimtips.org/media/images/buttoncmp.png - 左边是在 Android 上运行的按钮的屏幕截图,到处都有 2 个像素的边框。右边是 9patch 本身的放大截图。

标签: android


【解决方案1】:

尝试在您的 9-patch 中使用不同的标记。前任。就像他们在这个例子中使用的那样:http://developer.android.com/intl/de/guide/developing/tools/draw9patch.html

我自己也遇到过这种情况,但问题与清单文件中的大屏幕支持有关。而且我没有在drawable-hdpi文件夹等中提供正确的图像。导致设备缩放drawable-mdpi drawables。

你有多少个可绘制文件夹?

你的清单中有这个吗? :

 <supports-screens
      android:largeScreens="true"
      android:normalScreens="true"
      android:smallScreens="true"
      android:resizable="true"
      android:anyDensity="true" />

确保您有正确的可绘制对象以获得正确的密度

【讨论】:

  • 我使用的是 Android 1.5,所以我没有这些文件夹。也许我应该以 2.0 为目标,但将 minSdk 设置为 1.5?即便如此,一个 Ninepatch 图像应该可以缩放到任何大小,对吧?它在哪个目录中无关紧要,但也许我以错误的方式考虑它。
  • 好吧,切换到 而不是 似乎有解决了我的问题。我什至没有创建任何额外的目录,比如 drawable-mdpi 或任何东西。我会把它交给你,因为你引导我找到了解决方案,而且无论如何你都是唯一一个添加答案的人。
猜你喜欢
  • 2011-08-09
  • 1970-01-01
  • 1970-01-01
  • 2013-08-02
  • 2020-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多