2013-10-14 53 views
-1

我想在TextView中的某些文本的頂部繪製一條簡單線條。我已經看過各種似乎覆蓋onDraw()函數的例子,但我的理解是,繪製東西時會調用onDraw()。帶有形狀或線條的TextView

我想在我的TextView中有一條垂直線,在這個時候我真的不在乎它在哪裏,一旦我有了線我相信我將能夠操縱它到我想要的位置。

我有一個TextViewWithLines類擴展的TextView其中代碼會:

public class TextViewWithLines extends TextView { 

public TextViewWithLines(Context context){ 
    super(context); 
} 

public TextViewWithLines(Context context, AttributeSet attrs) { 
    super(context, attrs); 
} 

public TextViewWithLines(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
} 

,我也有,我想了線的繪製一個片段,當我創建的視圖來完成。

public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState){ 
    View v = inflater.inflate(R.layout.fragment_hello_moon, parent, false); 

    t1 = (TextViewWithLines)v.findViewById(R.id.display1); 
      ................. 
} 

你描述的任何幫助,將不勝感激

回答

0

,你只需做你圖中的onDraw()。

這是一個(工作)的例子,希望在Textview中的所有文本都有下劃線;

How can I have a row separating line in TextView

+0

我從我的片段調用什麼? –

+0

你不需要在片段中調用任何特殊的東西。 onDraw()由Android調用,無論何時顯示視圖的內容。我想這就是你想要了解的例子。 – user2808624

0

一個可能的解決方案(只是一個簡單的XML佈局):

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:id="@+id/small_layout" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" > 

    <TextView 
     android:id="@+id/text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:textStyle="bold" 
     android:textSize="@dimen/define_your_size" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     /> 

    <LinearLayout 
     android:id="@+id/text_separator" 
     android:layout_width="match_parent" 
     android:layout_height="1dp" 
     android:orientation="vertical" 
     android:background="@color/define_your_color" 
     android:layout_alignParentTop="true"/> 

</RelativeLayout> 

如果你想畫一個TextView周圍的形狀(如矩形),你可以定義一個繪製背景,設置你想要的顏色:

<?xml version="1.0" encoding="utf-8"?> 

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_selected="true"> 
     <shape> 
      <stroke android:color="#FFCC00" android:width="3dp"></stroke> 
      <corners android:radius="5dp"/> 
      <solid android:color="#FAFFA8"/> 
     </shape> 
    </item> 

    <item android:state_enabled="false"> 
     <shape> 
      <stroke android:color="#FFFFFF" android:width="2dp"></stroke> 
      <corners android:radius="5dp"/> 
      <solid android:color="#00FFFFFF"/> 
     </shape> 
    </item> 

    <item> 
     <shape> 
      <stroke android:color="#DADADA" android:width="2dp"></stroke> 
      <corners android:radius="5dp"/> 
      <solid android:color="#FFFFFF"/> 
     </shape> 
    </item> 

</selector>