如果我想要显示TextView如下:
-------------display-------------
"显示" field是一个动态数据,而View是TextView,包括文本和两边的行,是对xml构建的任何建议吗?或者也许可以通过编程方式完成?
答案 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+"--------");