Android TextView的一些常见功能

效果.png

简介

TextView作为Android开发中的基础控件,在日常开发中我们频繁使用到TextView的一些功能.这里就简单总结了一下开发中常用的一些功能

功能

  • 设置大小不一的文字
  • 设置中划下
  • 设置小数点以后文字字体大小
  • 设置不同颜色展示文字
  • 展示图文混排

实现

1 设置中划线

  /**
     * 中间划线的效果
     * @param textView
     */
    public  static void setStrikethrough(TextView textView){
        textView.setPaintFlags(Paint.STRIKE_THRU_TEXT_FLAG);
    }

2.设置不同文字大小
/**
     * Html 方式设置不同文字大小
     * @param textview
     * @param money
     */
    public static void setMoney(TextView textview,double money){
        String moneyss= "¥ %s";
        String moneyContent=String.format(moneyss,getNumDiff(money));
        textview.setText(Html.fromHtml(moneyContent));

    }


    /**
     * span 方式设置 不同字体大小
     * @param textview
     * @param money
     * @param sizeSpan  字体大小  大于100 是比设置的字体大  小于100是比设置的小
     */
    public static void setMoney(TextView textview,double money,int sizeSpan){
        String moneyss= "¥ %s";
        String moneyContent=String.format(moneyss,getNumDiff(money));
        SpannableString spannableString = new SpannableString(moneyContent);
        spannableString.setSpan(new AbsoluteSizeSpan(sizeSpan), 0, 2, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
        textview.setText(spannableString);
    }

 /**
     * 数量转换
     */
    public  static String getNumDiff(double count) {
        String fansNum = "";
        if (count >= 0 && count < 10000) {
            fansNum = count + "";
        } else if (count >= 10000 && count < 10000000) {
            if (count / 1000 % 10 != 0) {
                float num = (float) count / 10000;
                DecimalFormat decimalFormat = new DecimalFormat("0.0");
                fansNum = decimalFormat.format(num).concat("万");
            } else {
                fansNum = (count / 10000) + "万";
            }
        } else if (count >= 10000000) {
            fansNum = "1000万";
        }
        return fansNum;
    }

3.设置小数点以后文字大小

 /**
     * 设置小数点以后文字大小
     * @param textview
     * @param money
     * @param sizeSpan  字体大小  大于100 是比设置的字体大  小于100是比设置的小
     */
    public static void setMoneyTextView(TextView textview,double money,int sizeSpan){
        String moneyss= "¥ %.2f";
        String moneyContent=String.format(moneyss,money);
        int index=moneyContent.indexOf(".");
        SpannableString spannableString = new SpannableString(moneyContent);
        spannableString.setSpan(new AbsoluteSizeSpan(sizeSpan), index, moneyContent.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
        textview.setText(spannableString);

    }

4.设置不同文字展示

    /**
     * html方式
     * 设置字体的不同颜色
     * @param textview
     * @param content
     */
    public static void setColor(TextView textview,String content){
//        String str6 = "我的作业完成了";
        String moneyss= "%s %s";
        String strigContent=String.format(moneyss,"我的","作业完成了");
        textview.setText(Html.fromHtml(strigContent));
    }

    /**
     * 设置文字颜色  span 方式
     * @param textview
     * @param content
     * @param endSize
     */
    public static void setColor(TextView textview,String content,int endSize){
        SpannableString spannableString = new SpannableString(content);
        spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#FF0000")), endSize, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        textview.setText(spannableString);
    }

5.设置图文混排


    /**
     * 设置图片
     * @param mContext
     * @param textview
     * @param content
     */
    public static void setDrawable(Context mContext, TextView textview, String content){
        SpannableString spannableString = new SpannableString(" "+content);
        //这只图片的宽高
        Drawable drawable = mContext.getResources().getDrawable(R.mipmap.ic_launcher);
        drawable.setBounds(0, 0, 100, 100);

        ImageSpan imageSpan = new ImageSpan(drawable);
        spannableString.setSpan(imageSpan, 0, 1, ImageSpan.ALIGN_BASELINE);

        Drawable drawable2 = mContext.getResources().getDrawable(R.mipmap.ic_launcher);
        drawable2.setBounds(0, 0, 100, 100);
        ImageSpan imageSpan2 = new ImageSpan(drawable2);
        spannableString.setSpan(imageSpan2, 2, 3, ImageSpan.ALIGN_BASELINE);
        textview.setText(spannableString);

    }

注意
图文混排建议web加载标签方式实现

总结

简单的总结了一下TextView常见的一些展示样式,还有一些处理相对麻烦的,比如扩展TextView 指定类型文字高亮展示这里没做展开.后期继续总结.高亮和扩展的TextView的自定义库放在下边了

资源

高亮和扩展的TextView

版权声明:
作者:congcong
链接:https://www.techfm.club/p/94872.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>