2011-12-07 2 views
1

나는 Android에 독자를 씁니다. 페이지가 다른보기로 구분됩니다. 얼마나 많은 문자가 다른보기로 텍스트를 올바르게 나누기 위해 화면에 맞는지 계산하는 방법? 어쩌면 이렇게하는 간단한 방법이 있을까요? 뷰에 텍스트를 추가하는 코드 :Android. 화면에 맞는 문자 수를 계산하십시오.

for (int i = 0; i < pages; i++) { 
      TextView textView = new TextView(getApplicationContext()); 
      textView.setText(text); 
      realViewSwitcher.addView(textView); 
     } 

답변

0

아마 당신은 텍스트의 크기에 따라 가정을 만들 수있는, 어쩌면 여기에서 기본은 12dip 될 것이다. 그리고 평균 단어 길이가 5 단어라고 가정합니다. 5 문자 단어가 얼마나 많이 찍히는지를 결정합니다. 폭과 높이를 취하여 그 수로 나눕니다.

+0

더 쉬운 변형이 있습니까? 텍스트가 여러 페이지로 분할되고 스크롤되는 독자와 같은 작업 만하면됩니다. – Kyborg2011

+0

이 문제가 발생할 수 있습니다. getTextSize()는 텍스트의 크기를 가져옵니다. 다음 총 표면을 계산하는 getMaxEms() * (당신이 setMaxLines()에). 전체 표면에 도달 할 때까지 문자 단위로 문자를 추가하십시오. – Ian

0

Paint으로 문의하십시오. "measureText"또는 "breakText"와 같은 메소드가 있습니다. getPaint()를 사용하여 TextView에서 Paint 객체를 가져올 수 있습니다.

0

아마 당신은 어떻게 든 textview에 맞는 em의 수를 계산할 수 있습니다.

또는 computerVerticalScrollRange()를 기반으로 문자에 맞게 알고리즘을 만들 수 있습니다. 시행 착오를 통해, 결국 완벽한 적합성을 발견 할 수 있습니다.

관련 문제