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