Android文字格式

时间:2016-04-08 04:28:56

标签: android text formatting

我需要在图片上格式化文本 - 文本的某些部分必须是圆形矩形,如形状背景。试图使用HTML格式,但它不起作用。没有找到如何用span实现它的信息。

有什么想法吗? image

2 个答案:

答案 0 :(得分:0)

您可以使用自定义形状drawable并使用SpannableTextView中进行设置。

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>

这是它的样子:

enter image description here