2010-03-21 84 views
2

是否有一个技巧让9patch图像具有单个像素边框?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看起来完全符合您的要求带着这些问题。有一种方法可以让它看起来应该如何。

+1

这将极大的帮助,如果您可以提供显示出您所描述的行为的样本图像。 – CommonsWare 2010-03-21 11:39:38

+0

http://vimtips.org/media/images/buttoncmp.png - 左边是在Android上运行的按钮的屏幕截图,每个地方都有2个像素边框。右图是9patch本身的截图。 – synic 2010-03-21 15:20:24

回答

3

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

我已经亲身体验过这个问题,这个问题与清单文件中的largeScreen支持有关。而且我还没有在drawable-hdpi文件夹中提供正确的图像。导致设备缩放drawable-mdpi drawables。

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

你有没有在你的清单? :

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

请确保您有正确的图形内容正确密度

+0

我正在使用Android 1.5,因此我没有这些文件夹。也许我应该瞄准2.0,但minSdk设置为1.5? 即便如此,九张图片应该可以缩放到任意大小,对吧?不管它在哪个目录中,但可能我正在以错误的方式考虑它。 – synic 2010-03-27 20:06:55

+1

那么,切换到而不是似乎解决了我的问题。我甚至没有创建任何额外的目录,比如drawable-mdpi或其他东西。我会把它交给你,因为你让我找到了解决方案,而且你是唯一一个能够添加答案的人。 – synic 2010-03-28 05:46:08

+0

大声笑............................................. – afadfadf 2016-03-21 10:30:38