9patch drawable 1px黑线可见&内容定位

时间:2011-05-30 16:57:27

标签: android android-layout

我已经关注了9patch,感谢那些回答我之前问题的好人: enter image description here

我在相对布局和TextView中使用它作为背景并得到了以下内容。 那是RelativeLayout:

  <RelativeLayout
        android:id="@+id/relativeHeader"
        android:layout_width="fill_parent"
        android:layout_height="60dp"
        android:orientation="horizontal"
        android: background="@drawable/cap_stack">

enter image description here

对于TextView:

<TextView
       android:paddingTop="5dp"
       android:gravity="center_vertical"
       android:layout_width="fill_parent"
       android:layout_height="22dp"
       android:background="@drawable/cap_stack"
       android:textStyle="bold"
       android:textColor="#FFFFFF"/>

enter image description here

如您所见,在两种情况下都可以看到1px宽线。如果TextView文本没有放在中心垂直。我该如何解决它(是可绘制的问题还是xml)?将不胜感激任何帮助

4 个答案:

答案 0 :(得分:1)

你不应该有完整的边框。顶部和左侧边框定义了拉伸区域(您只需要顶部的一个像素进行拉伸,并且您希望JUST渐变在垂直轴上拉伸)。底部和右边框定义了内容区域,因此您也想要留下一些填充。永远不应该填充四个角落像素。

试试这个:

enter image description here

或者这个:

enter image description here

答案 1 :(得分:1)

尝试使用textview,问题是你的layout_height你想要的是textSize属性。此外,请注意我使用的是SP单元而不是DP,因为这是文档建议的文本大小值。我希望这有帮助!

<TextView
   android:paddingTop="5dp"
   android:gravity="center_vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:textSize="22sp"
   android:background="@drawable/cap_stack"
   android:textStyle="bold"
   android:textColor="#FFFFFF"/>

答案 2 :(得分:0)

您是否将图片命名为cap_stack.9.png?似乎android并没有把它当作9patch处理。

答案 3 :(得分:0)

android:gravity =“center_vertical”仅适用于LinearLayout,对于relativeLayout使用Layout_centerVertical = true。

并且边框上的线条似乎是您图像的一部分,没有看到任何其他可能性//////所以重新检查图像可能会有所帮助。