Android에서 텍스트 페이지 매기기
문제:
Android의 TextView 컨트롤 내에서 텍스트 페이지 매기기 텍스트를 페이지로 나누는 시기와 방법을 결정해야 합니다. TextView의 줄바꿈 및 페이지 나누기 알고리즘은 쉽게 액세스할 수 없어 실제 디스플레이에서 텍스트가 끝나는 위치를 식별하기 어렵기 때문에 이는 어려울 수 있습니다.
해결책:
ViewTreeObserver를 사용하여 보이는 텍스트 범위를 모니터링하면 뷰 높이에 완전히 맞는 마지막 줄을 추적할 수 있습니다. 이를 통해 줄의 누적 높이를 기반으로 페이지를 생성할 수 있으므로 사용 가능한 수직 공간을 초과하는 줄이 나타나면 페이지가 깨지는 것을 보장합니다.
알고리즘:
구현:
이 알고리즘을 구현하려면 다음을 사용하세요. code:
// Setup code ViewTreeObserver vto = txtViewEx.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { ViewTreeObserver obs = txtViewEx.getViewTreeObserver(); obs.removeOnGlobalLayoutListener(this); height = txtViewEx.getHeight(); scrollY = txtViewEx.getScrollY(); Layout layout = txtViewEx.getLayout(); firstVisibleLineNumber = layout.getLineForVertical(scrollY); lastVisibleLineNumber = layout.getLineForVertical(height + scrollY); } });
참고:
이 솔루션은 줄 높이와 문자 간격을 존중하면서 텍스트의 페이지를 효율적으로 매깁니다. 또한 특수 문자와 동적 텍스트 변경도 처리합니다.
위 내용은 Android의 TextView 컨트롤 내에서 텍스트의 페이지를 매기는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!