美文网首页
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