반응형
프로그래밍 방식으로 textSize 설정
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, getResources().getDimension(R.dimen.result_font));
다음 코드는 작동하지만 R.dimen.result_font
실제보다 훨씬 더 큰 값으로 간주됩니다. 화면 크기에 따라 18sp-22sp 또는 24sp 정도일 수 있습니다.하지만 여기에서 설정 한 크기는 약 50sp 이상입니다. 누군가가 뭔가를 추천 해 주시겠습니까?
리소스에서 dimen 값을 반환하고 암시 적 으로 px 로 변환 TypedValue.COMPLEX_UNIT_PX
되기 때문에 로 변경해야합니다 .getDimension(id)
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,
getResources().getDimension(R.dimen.result_font));
요구 사항
리소스 파일에서 프로그래밍 방식으로 textView 크기를 설정한다고 가정합니다.
차원 리소스 파일 (res / values / dimens.xml)
<resources>
<dimen name="result_font">16sp</dimen>
</resources>
해결책
먼저 리소스 파일에서 "textSizeInSp"변수로 dimen 값을 가져옵니다 .
int textSizeInSp = (int) getResources().getDimension(R.dimen.result_font);
다음으로 16 sp 값을 동일한 픽셀로 변환 합니다.
그것을 위해 방법을 만듭니다.
public static float convertSpToPixels(float sp, Context context) {
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, context.getResources().getDisplayMetrics());
}
TextSize를 설정하겠습니다.
textView.setTextSize(convertSpToPixels(textSizeInSp , getApplicationContext()));
모두 함께,
int textSizeInSp = (int) getResources().getDimension(R.dimen.result_font);
textView.setTextSize(convertSpToPixels(textSizeInSp , getApplicationContext()));
참조 URL : https://stackoverflow.com/questions/20364993/setting-textsize-programmatically
반응형
'IT Share you' 카테고리의 다른 글
C # PredicateBuilder 엔터티 : 매개 변수 'f'가 지정된 LINQ to Entities 쿼리 식에 바인딩되지 않았습니다. (0) | 2021.01.09 |
---|---|
Mongo에서 대소 문자를 구분하지 않는 검색 (0) | 2021.01.09 |
Swift에서 SHA1로 NSString을 해시하는 방법은 무엇입니까? (0) | 2021.01.09 |
FormData (HTML5 Object)를 JSON으로 변환하는 방법 (0) | 2021.01.09 |
Git 치명적 : 프로토콜 'https'가 지원되지 않습니다. (0) | 2021.01.09 |