通过TextView 来测量不同分辨率下 一行能显示多少字符

首先准备好TextView   和测量字符如
<!--用来测量一行可以显示多少字符   边距统一用padding-->
<TextView
    android:id="@+id/article_ranging"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingLeft="24dp"
    android:paddingRight="24dp"
    android:visibility="gone"
    android:text="abcdefghijklmnopqrstuvwxyz"/>
    /**
     * 用  TextView  测量不同分辨率  下  一行能显示多少个字符
     */
    @SuppressLint("NewApi")
    public static int getLineMaxNumber(Activity activity, TextView textView) {
        //获取用来测量的字符串的长度
        int str_length = MyApplication.appcontext.getResources().getString(R.string.ranging_str).length();
        //获取当前字符串所占的宽度   像素单位
        int total_str_dpi = (int) textView.getPaint().measureText(textView.getText().toString());
        //获取每个字符   占多少像素
        int c_dpi = total_str_dpi / str_length;
        //获取当前   手机的分辨率   获取横坐标像素
        DisplayMetrics displayMetrics = activity.getResources().getDisplayMetrics();
        float total_dpi = displayMetrics.widthPixels;
        //获取边距像素
        int parding_dpi=textView.getTotalPaddingLeft()+textView.getTotalPaddingRight();
//        int parding_dpi=0;
        //总宽像素   减去   边距像素   等于  最终显示一行字符的像素宽度
        int end_total_dpi=(int) total_dpi-parding_dpi;
        //总像素宽度   处于   单个字符占的宽度像素   得到一行占多少字符
        return  end_total_dpi / c_dpi;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值