특정 크기의 TextView이 있다고 가정 해보십시오 (실제로는 ... fill_parent, 20dip 등). 수학을 많이하지 않고도 사용 가능한 공간에 맞게 크기가 줄어들거나 커지도록 텍스트를 말할 수 있습니까?TextView에서 textSize 크기 조절
답변
아쉽습니다. 죄송합니다.
"복잡한 수학이 많이 필요합니다"보다 약간 간단하지만 텍스트 너비가 텍스트 뷰의 너비와 너무 멀지 않은 경우 사용할 수있는 해킹 솔루션이 있습니다. 텍스트의 폭이 당신의 텍스트 뷰의 폭보다 크게 다를 수 있습니다 경우
// HACK to adjust text width
final int INITIAL_TEXTSIZE = 15;
final int TEXTVIEW_WIDTH = textviewBackground.getIntrinsicWidth(); // I use the background image to find the width, but you can use a fixed value or whatever other method you prefer.
final String text = ...;
textView.setText(text);
int size = INITIAL_TEXTSIZE;
while(textview.getPaint().measureText(text) > TEXTVIEW_WIDTH)
textview.setTextSize(--size);
, 올바른 글꼴 크기를 찾기 위해 선형 검색 대신 이진 검색을 사용하는 것이 좋습니다 수 있습니다.
이상적인 해결책은 아니지만 텍스트 크기를 조정하지 않아도되는 경우에 편리합니다. 텍스트 크기를 자주 조정해야하는 경우 복잡한 수학을하는 것이 좋습니다.
+1 아주 좋은 대답입니다. 수락 한 IMO 여야합니다. –
U는 TextView의 아이디어 글꼴 크기 값을 계산할 수 있습니다. 그것은 너무 크지 않고 채울 글꼴 크기입니다. 공식은 다음
fontSize = (TextView Height) * (width DPI/height DPI)/(Screen Width * Screen Height);
폭과 높이 DPI는 활동에서의 onConfigurationChanged 메소드를 재정의하고, 그리고 newConfig.screenWidthDp newConfig.screenHeightDp을 사용하여 얻을 수있다. 픽셀
화면 사이즈는 I 막 (의 onConfigurationChanged에서) 필요에 따라이 값을 계산하고, 어떤 정적 헬퍼 클래스으로 밀어 다음 헬퍼 기능
// Get Screen Size
static public Point getScreenSize(Activity aActivity)
{
Display display = aActivity.getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
return size;
}
을 사용하여 얻을 수있다. 그런 다음 TextView에서 사용할 글꼴 크기를 결정해야 할 때이 클래스에서 가져옵니다.
이 방법이 효과가 있지만 가장 간단한 해결책은 아닙니다.
쓸데없는. 문자의 길이를 고려하지 않습니다. – AndroidDev
나는 거의 모든 것을 시도해 보았고, 맨 위를 포함하여 대부분 실패했다. 가장 간단하고 효과적이었던 것은 emmby에서 발견되었지만 초기 textsize를 설정해야한다는 것을 알았습니다.
final String text = "HELP";
TextView tvFlash = (TextView) findViewById(R.id.tvFlash);
DisplayMetrics metrics = getResources().getDisplayMetrics();
int width = metrics.widthPixels;
int height = metrics.heightPixels;
tvFlash.setText(text);
tvFlash.setTextSize(TypedValue.COMPLEX_UNIT_PX, 1);
int size = 1;
do
{
float textWidth = tvFlash.getPaint().measureText(text);
if (textWidth < width)
tvFlash.setTextSize(++size);
else
{
tvFlash.setTextSize(--size);
break;
}
}while(true);
- 1. SDL에서 스프라이트 크기 조절
- 2. BitmapData로 크기 조절
- 3. 직사각형 크기 조절
- 4. 글꼴 크기 조절 방법
- 5. Java에서 커서 크기 조절
- 6. 불규칙하게 팝업 크기 조절
- 7. PropertyGrid 컨트롤의 크기 조절
- 8. 스크롤 휠 크기 조절
- 9. UIWebView에서 콘텐츠 크기 조절
- 10. iPhone에서보기의 크기 조절 자동 크기 조정
- 11. AffineTransform : 가운데에서 도형 크기 조절
- 12. 자동 크기 조절 winform의 컨트롤
- 13. JavaScript - 부드러운 이동/크기 조절
- 14. WPF에서 자동 크기 조절 글꼴?
- 15. CSS3 Webkit/Safari에서 크기 조절
- 16. 다른 원점에서 직사각형 크기 조절
- 17. WindowedApplication Flex에서 크기 조절 해제
- 18. iPhone에서 UIImageView로 이미지 크기 조절
- 19. 윈도우 폼의 크기 조절 해제
- 20. 런타임에 iPhone에서 UIView의 크기 조절
- 21. 애니메이션 도중 UIView 크기 조절
- 22. div에서 창의 이동 크기 조절
- 23. CListCtrl의 열 크기 자동 조절
- 24. WPF UIElements의 동적 TextSize
- 25. NSScrollview에서 사각형 크기 조절 윈도우 크기 조절 핸들을 제거하는 방법은 무엇입니까?
- 26. TabActivity에서 탭의 색상 상태/크기 조절?
- 27. X11 창의 크기 조절 사용 안 함
- 28. Cannnot FlowLayoutPanel 컨트롤에서 자식 컨트롤 크기 조절
- 29. 비주얼 브러시 배경 크기 조절 WPF
- 30. WPF : 복잡한 이미지의 빠른 그리기/크기 조절
여기에 대한 답을 참조하십시오 아주 잘, 작품 : 여기에 당신이 전혀 TEXTSIZE를 지정할 필요가 없습니다 자신의 위치에 대한 개선은 [여기 링크 설명을 입력합니다] [1] [1] : http://stackoverflow.com/questions/5033012/auto-scale-textview-text-to-fit-within-bounds – AllDayAmazing