首先准备好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; }