2012-03-10 75 views
0

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

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

任何想法?

感谢

回答

5

有效的9个补丁图像必须有顶部至少一个可扩展区域和一个在左,你在右描绘区域,并在下面指定垫衬,看看this

如果你想要你的九个补丁图像只能水平扩展,你将不得不准备你想要的高度和宽度一个像素一样窄的原始图像,并在顶部绘制一个点,另一个在左边,注意我们在左边指定的可扩展区域只是为了使其成为有效的九个补丁。现在,您可以将图像放入布局(将布局的高度设置为图像的高度),为图像设置android:layout_graviy="center_vertical",然后将图像水平放大。

+0

根据您的图像,中心上的单个点可能是更好的选择。 – 2012-03-14 11:21:20

+0

你试过了吗?我不认为这是可能的。对于九个补丁图像,只能在图像边缘放置点。 – neevek 2012-03-14 11:40:00

+0

对不起,我实际上是在谈论左边的中心:) – 2012-03-14 12:00:36

0

如果你不想让你的图像垂直展开,那么为什么不能直接使用9-patch来保持其他的为fill_parent。

1

我想横向扩展而不破坏左侧和右侧设计。 我所做的是在图像的顶部和底部添加额外的1px(透明)。 之后,在左侧,我在添加了额外填充的行上添加了黑点。以及图像顶部的可展开区域。 我这样做对所有的4个不同的密度和它的作品将很好:)

随着radley's scale and fill的帮助下,我只画黑线左侧。

要使其垂直居中,请在您的文章中提到,只需在android:layout_graviy="center_vertical"中添加线性布局或android:layout_centerVertical="true"即可获得相对布局。

希望它有帮助。