안녕하세요? 안드로이드 초급 입문자입니다.
다름이 아니라 텍스트뷰 내부에 들어 갈 수 있는 문자열의 평균 개수(한글,영어,숫자모두포함)를 얻기 위해getTextBounds(text, start, end, bounds); 를 하여 bounds를 통해
float bw = bounds.width();
float bh = bounds.height();
로 텍스트 내부의 유효 문자 가로 세로 크기를 받아왔습니다.
반환되는 값은 px크기로 알고 있습니다.
그런데 472x32(px) textView에 문자를 넣고 값을 반환했더니
bw=935.0 / bh = 60이 나왔습니다. 텍스트뷰 내부에 문자가 빠짐없이 들어갔는데 px로 반환되는 값이 텍스트뷰 사이즈보다 큽니다.. 이 값을 어떻게 해석해야 하는 걸까요? 고수님들 답변 부탁드립니다. 아래는 소스의 일부 입니다. 혹시 반환되는값이 px가 아닌가요? 아니라면 어떤 단위인가요?
tv1.setText("zzzzzzzzzz ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 1111111111");
@Override
public void onWindowFocusChanged(boolean hasFocus) {
float width1 = tv1.getWidth();
float height1 = tv1.getHeight();
float fsize = tv1.getTextSize();
Paint p = new Paint();
Rect bounds = new Rect();
p.setTextSize(60);
p.getTextBounds(tv1.toString(), 0, tv1.length(), bounds);
float bw = bounds.width();
float bh = bounds.height();
//textSize의 값 구하고 변환하기
tv3.setText("textSize = " + String.valueOf(String.format("%.1f", fsize))+ "px, " + String.valueOf(String.format("%.1f", fsize/1.5))+"sp");
//textView에 들어 갈 수 있는 문자열 개수 구하기
tv4.setText("MainTextView에 들어갈 수 있는 글자 수는 : " +
String.valueOf(String.format("%.1f",bw)+"////"+tv1.length()+"/////"+bh));