这是我的代码,逻辑是我得到屏幕宽度,我得到字符宽度,我将宽度除以字符大小,当字符串的长度大于屏幕宽度时,我将其添加到一个包含所有行的数组中我做的是字符太多还是太少
SharedPreferences sharedPreferences =
mActivity.getPreferences(Context.MODE_PRIVATE);
sp = sharedPreferences.getFloat("EXT_SIZE",50);
private void splitIntoLines(float textWidth, String[] textArray) {
ArrayList<String> Lines = new ArrayList<>();
StringBuilder tempString = new StringBuilder();
DisplayMetrics displayMetrics = new DisplayMetrics();
mActivity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
float screenWidth = displayMetrics.widthPixels;
float currentWidth=0;
for (String word : textArray) {
if ((currentWidth + ((word.length())* textWidth)) >=
screenWidth) {
Lines.add(tempString.toString());
tempString = new StringBuilder();
}
tempString.append(word).append(" ");
currentWidth = tempString.toString().length() * textWidth;
}
//used to debug
mTextView.setText(Lines.get(0));
}
public float getTextBounds(){
String text = "W";
Paint paint = new Paint();
paint.setTextSize( (sp));
paint.setTypeface(Typeface.DEFAULT);
return paint.measureText(text);
}
答案 0 :(得分:0)
您想在这里解决什么? Android只需添加
即可将textview的inputType设置为多行android:inputType="textMultiLine"
到您的布局。或者,如果只需要显示第一行,则可以将textView设置为单行,然后添加所需的任何ellipsize选项。