Android TextView 实现一个单词分两行显示

这篇博客讲述了如何在Android中实现TextView的一个特殊需求,即当英文单词过长时,能自动在单词内部进行换行,保持布局整洁。通过自定义TextView并重写onMeasure方法,将字符串在测量时拆分,以达到单个单词换行的效果。代码来源于http://www.cnblogs.com/snser/p/5159125.html并进行了优化,增加了在换行单词间添加连接符“-”以及使span格式生效的改进。
摘要由CSDN通过智能技术生成

今天遇到一个需求,TextView实现自动换行时一个英文单词能够换行显示,使布局整齐。通过网上查询,确定实现逻辑如下:

自定义TextView,重写其onMeasure方法,在测量textView的宽高时重新拆分字符串,实现单个单词换行显示,以下是自定义TextView的源码(基本复制博客:http://www.cnblogs.com/snser/p/5159125.html中的源码):

package com.example.lupeng.customtextviewbreak;

import android.content.Context;
import android.graphics.Paint;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.widget.TextView;


/**
 * 单个单词可以显示在两行的TextView
 * 缺点:setTextView时如果设置了SpannableString,则还需要调用本TextView的setSpan方法再次设置,而且由于Text换行导致设置Spannable时可能出现异常
 * Created by lupeng.kang on 17/1/10.
 */
public class BreakTextView extends TextView {
    private boolean mEnabled = true;

    public BreakTextView(Context context) {
        super(context);
    }

    public BreakTextView(Context context, AttributeSet
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值