쉽습니다 : 글꼴은 해상도와 일치하지 않아도되며 픽셀 밀도 와 일치해야합니다 .
픽셀 밀도는 인치당 픽셀 ( PPI ) 또는 센티미터 당 픽셀로 측정됩니다 . 밀도 독립 픽셀 ( DP ) 이라는 측정 단위도 있습니다 . 1dp
한 픽셀이 160 PPI
화면 에서 갖는 크기 로 정의됩니다 .
이제 글꼴로 돌아와서이 테스트를 해보십시오. 랩탑을 720p에서 실행하십시오. 글꼴 크기를 살펴보십시오. 이제 데스크탑의 1080p 42 "모니터에 연결하십시오. 모니터가 크기에 대한 올바른 정보를 출력하면 글꼴이 720p 화면에서와 정확히 같은 크기 여야합니다. 텍스트가 노트북의 크기는 데스크탑 모니터의 텍스트와 크기가 다르므로 해상도가 높을수록 글꼴에 더 자세한 내용이 표시되고 화면이 클수록 더 많은 내용이 표시됩니다.
텍스트 편집기에서도 동일한 사실을 알 수 있습니다. 72pt
글꼴은 화면이 종이에 인쇄 할 때 동일에 보일 것입니다.
이 모든 것은 모든 디스플레이 크기에서 동일한 크기를 원할 것입니다 (일부 예외 제외). 당신이 어딘가에 자신을 기반으로하려는 경우, 웹 사이트는 일반적으로 12pt
글꼴, MS Windows 사용 11pt
및 12pt
글꼴을 사용합니다 .
이 차트 (또한 답변의 맨 아래에 포함) 12pt
는 CSS에서 CSS와 거의 동일하다는 것을 알려줍니다 16px
(충분하지 않으면 CSS 의 px 는 다른 곳의 dp 와 동일 합니다). 16dp
LibGDX에서 글꼴 을 만듭니다.
게임에서를 사용하여 FreeTypeFontGenerator
글꼴을 동적으로 생성하십시오. 이렇게하면 글꼴을 만들 때 화면 밀도를 고려할 수 있습니다.
BitmapFont createFont(FreeTypeFontGenerator ftfg, float dp)
{
return ftfg.generateFont((int)(dp * Gdx.graphics.getDensity()));
}
//On Init
BitmapFont buttonFont = createFont(arial, 16); //16dp == 12pt
이 작품 때문에 Gdx.graphics.getDensity()
IS는에가 동일 YourScreenDensity/160
하므로, 그들이 160ppi 화면에있을 것입니다 크기에 물건을 가져에 "배율 인수"입니다.
앞에서 언급 한 예외에 대해 : 로고, 프로모션 등의 경우 화면 크기에 따라 글꼴 크기를 조정하는 것이 좋습니다. 그러나 Photoshop 또는 Gimp와 같은 그래픽 편집기에서 글꼴 크기를 조정하는 것이 좋습니다. , 어쨌든.
다른 예외는 작은 화면의 텍스트입니다. 4.5 "이하 전화 화면, 웨어러블. 일반적으로 콘텐츠를 스크롤 할 시간이없는 것, 또는 그냥 화면에 너무 많은 내용을 넣어 줄 수 없습니다. 당신은 글꼴 확장을 시도 할 수 1dp
는 AS, 아래로 독자는 아마도 휴대 전화를 얼굴에 아주 가까이 대면 읽기에 문제가 없을 것입니다.
TL; DR :
- 실제 크기는 화면 크기 나 해상도에 따라 직접적으로 변경되지 않지만 두 가지 (
screenSize/resolution
유명한 PPI) 의 조합으로 변경됩니다
- pt 와 dp 생각하십시오 . 최종 결과를 그려야 할 때까지 화면 픽셀을 잊어 버리십시오.
- 런타임에 알맞은 크기로 글꼴을 만드십시오.
- dp 를 화면 픽셀로 변환 :
pixels = dp * Gdx.graphics.getDensity();
- LibGDX와 같은 dp 로 변환기를 제공하지 않는 엔진을 사용하는 경우 다음을
Gdx.graphics.getDensity()
시도 할 수 있습니다.densityFactor = Screen.getPixelsPerInch() / 160.0f
pixels = dp * densityFactor
편집하다:
2014 년 6 월 25 일 Google IO의 Matias는 Android에 대한 새로운 스타일 가이드 라인을 발표했으며 여기에는 새로운 Roboto 글꼴 및 타이포그래피 가이드 라인이 포함되어 있습니다. 이 표를 가이드로 사용하십시오.
EDIT2 :
링크가 썩는 경우 CSS 글꼴 크기 차트가 포함되었습니다.