-1

我想在 TextView 中的一些文本上画一条简单的线。我查看了各种似乎覆盖 onDraw() 函数的示例,但我的理解是 onDraw() 在绘制某些内容时被调用。

我想在我的 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);
            .................
}

任何帮助,将不胜感激

4

2 回答 2

0

正如您所描述的,您只需要在 onDraw() 中进行绘图。

这是一个(工作)示例,该示例希望 Textview 中的所有文本都带有下划线;

如何在 TextView 中设置行分隔线

于 2013-10-14T15:07:06.417 回答
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>
于 2013-10-14T15:07:48.767 回答