我需要在图片上格式化文本 - 文本的某些部分必须是圆形矩形,如形状背景。试图使用HTML格式,但它不起作用。没有找到如何用span实现它的信息。
有什么想法吗?
答案 0 :(得分:0)
您可以使用自定义形状drawable并使用Spannable
在TextView
中进行设置。
SpannableString ss = new SpannableString(your string);
Drawable d = getResources().getDrawable(R.drawable.shape_drawable);
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);
ss.setSpan(span, 0, 3, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
textView.setText(ss);
请参阅this答案了解更多
答案 1 :(得分:0)
您可以创建一个drawable并将其设置为textview的背景
这是一个例子:
在drawable文件夹中创建shape.xml
这是一个可以放在shape.xml文件中的代码示例
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners android:radius="17dp" />
<stroke
android:width="1dp"
android:color="#ffffff" />
<size
android:height="20dp"
android:width="60dp" />
</shape>
您可以在此shape.xml中根据需要更改颜色和角落
然后将其设置为文本视图的背景 你的layout.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape"
android:padding="10dp"
android:text="@string/First_name" />
</RelativeLayout>
这是它的样子: