美文网首页
Android textview 添加缩进

Android textview 添加缩进

作者: Preupen | 来源:发表于2018-09-08 10:44 被阅读0次

项目需求,如果在项目中第一行文字需要添加布局的情况我们应该怎么做呢!经过一番考虑和查找我最终选择了缩进的方式解决这个问题。

先发一下处理后的效果图:
不多说了直接上代码:
    /**
     * @param context
     * @param textView
     * @param mPx
     */
    public void SJ(Context context, TextView textView, String str, int mPx) {
        //1.先创建SpannableString对象
        SpannableString spannableString = new SpannableString(str);
        //2.设置文本缩进的样式,参数arg0,首行缩进的像素,arg1,剩余行缩进的像素,这里我将像素px转换成了手机独立像素dp
        LeadingMarginSpan.Standard what = new LeadingMarginSpan.Standard(dp2px(context, mPx), 0);
        //3.进行样式的设置了,其中参数what是具体样式的实现对象,start则是该样式开始的位置,end对应的是样式结束的位置,参数flags,定义在Spannable中的常量
        spannableString.setSpan(what, 0, spannableString.length(), SpannableString.SPAN_INCLUSIVE_INCLUSIVE);
        textView.setText(spannableString);
    }

flag有以下四种:

Spanned.SPAN_EXCLUSIVE_EXCLUSIVE --- 不包含两端start和end所在的端点
Spanned.SPAN_EXCLUSIVE_INCLUSIVE --- 不包含端start,但包含end所在的端点
Spanned.SPAN_INCLUSIVE_EXCLUSIVE --- 包含两端start,但不包含end所在的端点
Spanned.SPAN_INCLUSIVE_INCLUSIVE--- 包含两端start和end所在的端点

我这里将px转成dp

    /**
     * dp转px
     *
     * @param context
     * @param dpVal
     * @return
     */
    public static int dp2px(Context context, float dpVal) {
        return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
                dpVal, context.getResources().getDisplayMetrics());
    }

ok处理完成!

相关文章

网友评论

      本文标题:Android textview 添加缩进

      本文链接:https://www.haomeiwen.com/subject/lqykgftx.html