Android 앱에 맞춤 서체를 사용하고 싶습니다. 나는 지시 사항을 따라 그림과 같이 내가 verdana.ttf
을 넣어하는 안드로이드 스튜디오에서 assets
폴더 생성 : 나는 내 MainActivity
활동에 다음과 같은 호출Android Studio의 에셋에서 서체를로드 할 때 NullPointerException이 발생했습니다.
:
public class MainActivity extends ActionBarActivity {
Typeface mainFont = Typeface.createFromAsset(getAssets(), "verdana.ttf");
을 코드가 컴파일되지만 활동이 시작되면 위의 행에 NullPointerException
이 표시됩니다. 나는 verdana.ttf
파일이 손상되었을 수도 있지만 다른 서체를 시도 할 때 오류가 지속되는 것으로 의심됩니다. 프로젝트 청소도 도움이되지 않습니다. 자산 폴더가 잘못된 위치에 있습니까? 나는 무엇을 잘못하고있을 것인가?
감사합니다. 그러나 코드 작성 과정에서 정적 클래스에서'onCreateView' 메서드로'createFromAsset()'을 호출해야합니다. 그래서 여기에'super.onCreate()'호출 이후에'Typeface.createFromAsset (getActivity(). getAssets(), verdana.ttf ")'를 시도해 보았습니다. 그리고 여기에도 다시'NullPointerException'이 생깁니다. 이 문제에 대한 해결책이 있습니까 (아니면 새로운 질문으로 게시해야합니까?). – Sid
@Sid : "코드 작성시 onCreateView 메서드의 static 클래스에서 createFromAsset()을 호출해야합니다."- onCreateView()는 유효한 'Context'를 얻기 위해 getActivity()를 호출 할 수 있습니다. . 'Context'를'Typeface'를 게으른 초기화하는 정적 메소드에 전달하십시오. "이에 대한 해결책이 있습니까? (또는 새로운 질문으로 게시해야합니까?") - 나머지 의견을 이해할 수 없으므로 여기에있는 조언이 충분하지 않으면 새로운 질문을해야 할 수도 있습니다 전체 스택 추적 및 소스 코드 포함. – CommonsWare
효과가있었습니다. 고마워. – Sid