我如何找出适合整个屏幕的字符数,我获得了正确的屏幕宽度,但是字符宽度似乎不对

时间:2018-10-11 01:33:11

标签: android android-studio

这是我的代码,逻辑是我得到屏幕宽度,我得到字符宽度,我将宽度除以字符大小,当字符串的长度大于屏幕宽度时,我将其添加到一个包含所有行的数组中我做的是字符太多还是太少

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);
}

1 个答案:

答案 0 :(得分:0)

您想在这里解决什么? Android只需添加

即可将textview的inputType设置为多行
android:inputType="textMultiLine"

到您的布局。或者,如果只需要显示第一行,则可以将textView设置为单行,然后添加所需的任何ellipsize选项。