我想在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);
.................
}
任何帮助将不胜感激
答案 0 :(得分:0)
如您所述,您只需要在onDraw()中进行绘图。
这是一个(工作)示例,希望Textview中的所有文本都加下划线;
答案 1 :(得分: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>