2012-06-27 1 views
3

Android의 기본 글꼴 (ICS의 Roboto 및 이전 글꼴의 다른 글꼴)을 내 안드로이드 앱의 모든 TextView에 적용하고 싶습니다.앱에 기본 글꼴을 적용하는 방법? Gmail 앱이하는 것처럼?

사용자가 시스템 환경 설정에서 변경 한 경우 변경해서는 안됩니다.

그게 가능합니까?

응용 프로그램 테마에서 글꼴을 보통으로 설정하려고했습니다. 하지만 그건 효과가 없었습니다. 그러나 모노 스페이스를 시도했을 때 효과가있었습니다.

내 패키지에 글꼴 파일을 포함하고 싶지 않습니다. 나는 GMail 앱이 ICS에서 그것을하는 것을 보았다. 그들이 어떻게하고 있니?

+2

나는 글꼴을 처리 할 때 다른 장치에서 일부 불일치가 있음을 발견했다. 내 생각에이 장치를 모든 장치에 걸쳐 패키지로 만들려면 글꼴 파일의 복사본을 자산 (자산)에 포함해야합니다. – FoamyGuy

답변

2

전년 동기 대비 글꼴 유형을 강제로 텍스트 뷰 개체를 확장하고, 생성자를 재정의 할 수

Typeface type = Typeface.createFromAsset(getAssets(),"fonts/Kokila.ttf"); 
    this.setTypeface(type); 
1

그냥 응용 프로그램에서 테마를 사용합니다. 당신은 그럼 당신은 @Stefano Ortisi에서 제공

<style name="YourCustomTheme" > 
    <item name="android:typeface">yourcustomfont</item> 
</style> 
+1

@Stefano Ortisi는 제공 한 솔루션을 구현 한 적이 있습니까? –

+0

@ArunGeorge. 이 작은 예제 프로젝트를 확인할 수 있습니다 : https://dl.dropbox.com/u/6102128/FontTest.zip –

+0

프로젝트를 점검하고 CUSTOM FONT는 프로그래밍 방식으로 만 사용할 수 있다고 말했습니다. 프로젝트의'style.xml''serif'에서 사용한 글꼴은 내장 서체 중 하나입니다. 그래서 사용자 정의 글꼴을 사용하지 않고 단지 안드로이드 내장 서체를 사용합니다. 그래서' yourcustomfont'이 실제로' AndroidBuildInFonts' –

2

솔루션은 절대적으로 잘못입니다 style.xml 파일에 사용자 지정 테마를 만들 필요가

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" android:theme="@style/YourCustomTheme"> 

의 AndroidManifest.xml

에서 설정할 수 있습니다. 당신이 당신의 응용 프로그램에서 사용자 정의 글꼴을 가질 수있는 유일한 방법은 자산 디렉토리에 배치하는 것입니다 거기에서 액세스 :

Using a custom typeface in Android

: 내 주장을 정당화 할 수있는 링크는 다음

Typeface tf = Typeface.createFromAsset(this.getAssets(), "fonts/CUSTOMFONT.tff"); 
TextView tv = (TextView) findViewById(R.id.TEXTVIEW_ID); 
tv.setTypeface(tf); 

이 문제와 관련된 유사한 게시물이 있습니다. 심지어 위의 게시물에 주어진 솔루션을 시도하기 전에이 링크를 확인하십시오

Custom typeface error

+0

코드 스 니펫에서 기본 setTypeFace 호출이 누락되었습니다. –

+0

오류를 지적 해 주신 @Giulio Piancastelli에게 감사드립니다. –

관련 문제