是否可以在Android TextView周围绘制边框?
当前回答
更改康斯坦丁·布罗夫的答案,因为在我的情况下不起作用:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@android:color/white" />
<stroke android:width="2dip" android:color="#4fa5d5"/>
<corners android:radius="7dp"/>
</shape>
</item>
</selector>
compileSdkVersion 26(Android 8.0),minSdkVersion 21(Android 5.0),targetSdkV版本26,实现“com.android.support:appcompat-v7:26.1.0”,等级:4.1
其他回答
可以将可绘制的形状(矩形)设置为视图的背景。
<TextView android:text="Some text" android:background="@drawable/back"/>
和矩形drawable back.xml(放入res/drawable文件夹):
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<solid android:color="@android:color/white" />
<stroke android:width="1dip" android:color="#4fa5d5"/>
</shape>
您可以使用@android:color/transparent作为纯色,使其具有透明的背景。您还可以使用填充将文本与边框分开。有关详细信息,请参阅:http://developer.android.com/guide/topics/resources/drawable-resource.html
试试看:
<shape>
<solid android:color="@color/txt_white"/>
<stroke android:width="1dip" android:color="@color/border_black"/>
</shape>
我有一个非常简单的方法,我想分享一下。
当我想调整文本视图时,我只需将它们放在LinearLayout中。我设置了LinearLayout的背景色,并为TextView添加了边距。结果就像是将TextView平方一样。
使用材质组件库,可以使用MaterialShapeDrawable。
<TextView
android:id="@+id/textview"
.../>
然后可以通过编程方式应用MaterialShapeDrawable:
TextView textView = findViewById(R.id.textview);
MaterialShapeDrawable shapeDrawable = new MaterialShapeDrawable();
shapeDrawable.setFillColor(ContextCompat.getColorStateList(this,android.R.color.transparent));
shapeDrawable.setStroke(1.0f, ContextCompat.getColor(this,R.color....));
ViewCompat.setBackground(textView,shapeDrawable);
有很多方法可以向textView添加边框。最简单的方法是创建一个自定义的可绘制文件,并将其设置为android:background=“@drawable/textview_bg”用于textview。
textview_bg.xml将位于Drawables下,可以是这样的。您可以有一个实心或渐变背景(如果不需要的话,也可以没有背景)、添加角半径的角和添加边框的笔划。
textview_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:radius="@dimen/dp_10"/>
<gradient
android:angle="225"
android:endColor="#FFFFFF"
android:startColor="#E0E0E0" />
<stroke
android:width="2dp"
android:color="#000000"/>
</shape>