반응형
사용하는 디바이스가 모두 다를텐데 Textview를 고정값으로 해두면 화면이 큰 디바이스에서는 불편함을 느낄것이다.
여러 기기의 화면 크기에 문제없이 대응하기 위한 방법은 여러가지가 있다.
이전까지는 가장 좋은 방법은 사실 320dp, 600dp, 720dp 등 화면의 최소 너비나 높이를 기준으로 레이아웃을 세분화하여 해결하는 방법이 가장 정확하지만, 유지보수에 손이 많이가곤 했다.
android O(api26)부터 새로 추가된 Autosizing TextViews가 있는데 이를 좀 변형해서 화면 사이즈에 대응하도록 코드를 적용해보았다.
public Point getScreenSize(Activity activity) { Display display = activity.getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); return size; } |
다음과 같이 화면 activity를 받고 size를 return 해주는 메서드를 하나 생성해주고
호출을 하면된다.
Point ScreenSize = getScreenSize(this); density = getResources().getDisplayMetrics().density; standardSize_X = (int) (ScreenSize.x / density); standardSize_Y = (int) (ScreenSize.y / density); |
(변수 선언 생략)
이렇게 되면
date.setTextSize((float) (standardSize_X / 20));
이렇게 사이즈를 조정할수 있다.
반응형
'IT > Android' 카테고리의 다른 글
Key Store 생성 및 앱에 서명해서 APK 추출하기 (13) | 2023.01.28 |
---|---|
Handler 를 이용하여 계속해서 정보 업데이트 하기 (13) | 2022.12.21 |
안드로이드 앱 타이틀바, 상태바 없애기 (20) | 2022.12.20 |
[Error] The resource name must start with a letter. (11) | 2022.12.18 |
안드로이드 화면 가로, 세로 고정하기 (13) | 2022.12.17 |
댓글