Android自定义文字样式

时间:2015-12-03 07:59:08

标签: android textview

如果我想要显示TextView如下:

-------------display-------------

"显示" field是一个动态数据,而View是TextView,包括文本和两边的行,是对xml构建的任何建议吗?或者也许可以通过编程方式完成?

3 个答案:

答案 0 :(得分:1)

您可以使用string.xml将短划线存储为文字,并使用String.format方法将动态文字放入textview

将以下行放在 string.xml:

<string name="dash_line">-----%1$s-----</string>

现在你可以使用上面的string在你的`textview中用动态数据设置虚线,如下所示:

String formattedstring = String.format(getResources().getString(R.string.dash_line), yourStringToShow);
yourTextView.setText(formattedstring );

答案 1 :(得分:0)

你可以像下面的代码那样做。

在此代码中,两条边线将根据宽度进行调整

<LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="10dp"
                android:gravity="center"
                android:orientation="horizontal" >

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

                <TextView
                    android:id="@+id/textView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:layout_marginRight="10dp"
                    android:gravity="center"
                    android:singleLine="true"
                    android:text="Your text goes here" />

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

答案 2 :(得分:0)

如果要显示一些drawable,请创建一个Shape drawable作为行。即将文件名称作为dashed_line.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="line">
    <stroke android:dashWidth="3dp" android:dashGap="1dp" android:color="@color/black" android:width="2dp"/>
</shape>

并使用如下:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:background="@drawable/dashed_line">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="@color/white"
        android:text="@string/hello_blank_fragment"/>    
</LinearLayout>

或者如果你只是想把字符串放在'------'两边,那么只需在设置文字时动态添加它,即

String display="display"; 
textview.setText("---------"+display+"--------");