마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

textSize 값이 왜 3.5 곱해질까요 dpi 관련 문제일까요?

0 추천
TextView의 textSize를 임의로 float값으로 대입하고 있습니다.

 

tv.textSize = tv2.textSIze

로 하면 tv2.textSize * 3.5 값이 대입됩니다.

 

tv.paint.textSize = tv2.paint.textSize

로 하면 정상적으로 대입됩니다.

 

왜이런걸까요??
익명사용자 님이 2018년 2월 7일 질문
2018년 2월 9일 reshown

1개의 답변

0 추천
 
채택된 답변
해결법을 알아냈습니다.

 

setTextSize(float) 함수는 인자로 SP 유닛을 취하고

getTextSize() 함수는 pixel 값을 넘겨주네요...

제가 코틀린을 사용해서

tv.textSize = 30f

Log.d(TAG, tv.textSize.toString())

이렇게 사용하니 30f 로 안나와서 문제였던건데 자바를 이용하시는 분들은

getTextSize 와 setTextSIze를 사용해야 하니 인자 이름으로 유추 가능했겠네요
 

 

 

결과적으론

setTextSize(TypedValue.COMPLEX_UNIT_PX, 값)

getTextSize

로 하니 pixel 로 대입, 취하기 모두 가능해졌습니다.

 

 

(refer : https://stackoverflow.com/questions/5032355/android-textview-settextsize-incorrectly-increases-text-size)
질문자 님이 2018년 2월 9일 답변
...