如何使九个补丁图像只能水平扩展?

时间:2012-03-10 00:18:01

标签: android nine-patch

我有一个九个补丁图像,我想在视图中垂直居中,只让它水平扩展。

我尝试在九个补丁上放置两个可扩展区域(一个在上面,一个在下面)但是根据屏幕的密度,如果视图最终是偶数个像素高而九个补丁是奇数高,然后图像稍微破裂。

有什么想法吗?

由于

4 个答案:

答案 0 :(得分:5)

有效的九个补丁图像必须至少有一个可扩展区域位于顶部,一个位于左侧,您在右侧和下方绘制的区域用于指定填充,请查看this

如果您希望九个补丁图像仅水平扩展,则必须准备原始图像,其高度为所需高度,宽度为一个像素,并在顶部绘制一个点,在左侧绘制另一个点,请注意我们在左侧指定的可扩展区域仅用于使其成为有效的九个补丁。现在,您可以将图像放在布局中(将布局的高度设置为图像的高度),为图像设置android:layout_graviy="center_vertical",然后将图像水平展开。

答案 1 :(得分:1)

我希望在不破坏左侧和右侧设计的情况下水平扩展。 我所做的是在图像的顶部和底部添加额外的1px(透明)。 在那之后,在左侧,我添加了添加额外填充的行上的黑点。以及图像顶部的可扩展区域。 我为所有4种不同的密度做了这个,它的效果很好:)

radley's scale and fill的帮助下,我只是在左侧绘制黑线。

要使其在文章中垂直居中,只需添加android:layout_graviy="center_vertical"进行线性布局或android:layout_centerVertical="true"进行相对布局。

希望它有所帮助。

答案 2 :(得分:0)

如果您不希望图像在垂直方向上展开,那么为什么不能直接使用9-patch将其他图像保留为fill_parent。

答案 3 :(得分:0)

看看下面的示例Example Link, 您可以设置可扩展区域并横向扩展九个补丁