Как я могу выяснить количество символов, которые поместятся по экрану, я получаю правильную ширину экрана, но ширина символов, кажется, отключена - PullRequest
0 голосов
/ 11 октября 2018

вот мой код, логика в том, что я получаю ширину экрана, я получаю ширину символа, я делю ширину на размер символа и, когда длина строки шире ширины экрана, я добавляю ее в массив, содержащий все строки независимо от того,что я делаю это слишком много символов или слишком мало

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 голосов
/ 11 октября 2018

что вы хотите решить здесь?Android может просто установить inputType вашего текстового представления на многострочное, добавив

android:inputType="textMultiLine"

к вашему макету.Или, если вам нужно показать только первую строку, вы можете установить текстовое представление в одну строку и добавить любую опцию многоточия, которая вам нужна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...