Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使一个九面片图像仅水平展开?_Android_Nine Patch - Fatal编程技术网

Android 如何使一个九面片图像仅水平展开?

Android 如何使一个九面片图像仅水平展开?,android,nine-patch,Android,Nine Patch,我有一个九面片图像,我想在视图中垂直居中,只让它水平展开 我曾尝试在九块补丁上放置两个可扩展区域(一个在上面,一个在下面),但取决于屏幕的密度,如果视图最终是偶数个像素高,而九块补丁是奇数高,则图像会稍微断裂 有什么想法吗 感谢一张有效的九块图像必须至少在顶部和左侧各有一个可展开区域,您在右侧和下方绘制的区域用于指定填充,请查看 如果你只想让你的九块图像水平展开,你必须准备好你想要的高度和宽度为一个像素的原始图像,在顶部画一个点,在左边画一个点,注意我们在左边指定的可展开区域只是为了使它成为一个

我有一个九面片图像,我想在视图中垂直居中,只让它水平展开

我曾尝试在九块补丁上放置两个可扩展区域(一个在上面,一个在下面),但取决于屏幕的密度,如果视图最终是偶数个像素高,而九块补丁是奇数高,则图像会稍微断裂

有什么想法吗


感谢

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


如果你只想让你的九块图像水平展开,你必须准备好你想要的高度和宽度为一个像素的原始图像,在顶部画一个点,在左边画一个点,注意我们在左边指定的可展开区域只是为了使它成为一个有效的九块。现在,您可以将图像放入版面中(将版面的高度设置为图像的高度),为图像设置
android:layout\u graviy=“center\u vertical”
,然后将图像水平展开。

如果您不希望图像垂直展开,那你为什么不能直接使用9-patch,而保留另一个作为填充父对象。

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

在的帮助下,我在左边画了一条黑线

要使其垂直居中,如您在文章中所述,只需为线性布局添加
android:layout\u graviy=“center\u vertical”
,或为相对布局添加
android:layout\u centerVertical=“true”


希望能有所帮助。

看看下面的示例,
您可以设置可扩展区域并使用水平扩展九块

根据您的图像,中心的单个点可能是更好的选择。您尝试过吗?我认为这是不可能的。对于九块图像,您只能在图像的边缘周围放置点。对于混淆,很抱歉,我实际上是在谈论左边缘的中心:)如果顶部没有点,它不是有效的九块图像,eclipse不喜欢它,您将得到编译时错误<代码>沿边缘未找到标记区域。-沿顶部边缘找到。