2016-09-20 32 views
-2

我想创建这样的标签:定制一个TextView

enter image description here

的要求是:

  • 矩形应与文本增长
  • 红线的长度属性依赖

我试过的是创造e为文本背景的9ng图像,并使用填充属性表示红线的长度。红线是通过覆盖onDraw方法绘制的。

结果是红线是正确的,但背景展开包括填充像这样:

enter image description here

什么是做到这一点的最好方法是什么?建立一个包含标签的自定义视图?以编程方式绘制100%的自定义视图(在这种情况下,调整9ng图像的方法是什么?)?要做到这一点

感谢 朱利安

+0

共享视图XML代码。 –

回答

1

试试这个

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_vertical" 
     android:orientation="horizontal"> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="The text" 
      android:textColor="#000000" 
      android:background="@drawable/<your_drawable>" 
      android:textSize="16sp" /> 

      <View 
      android:layout_width="0dp" 
      android:layout_height="1dp" 
      android:background="#f00" 
      android:layout_weight="1" /> 

    </LinearLayout> 

希望它会帮助你

+0

哼,我试着用程序完成它,但这个解决方案很好。我添加了一个包装类来存储红线宽度。有没有办法用这种方法绘制点线? – Julien

+0

这是处理它的简单方法。 –

0

最好的方法可能使用两个不同的控制器。

您设置了一个简单的textView,并将矩形作为背景,宽度设置为wrap-content

在此之后,您可以根据需要(位于控制器的右侧或页面末尾或您喜欢的位置)创建要放置的位置,然后调整它的大小。

对于任何疑问,我在这里