마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

커스텀 폰트를 TextView에게만 적용시키고 싶습니다.

0 추천
커스텀 폰트를 화면의 TextView에게만 적용시키고 싶습니다.

예를 들어, yugothil이라는 폰트를 제가 가지고 있으면, 그 폰트 글씨체를 TextView에게만 적용되어

화면에 적용되었으면 좋겠습니다.

어떻게 하면 좋을까요?

관련 예제나 링크를 올려주신 분께 바로 채택갈께요.
kissout (1,100 포인트) 님이 2016년 5월 2일 질문

1개의 답변

0 추천
 
채택된 답변
이미 폰트 적용시키는 법은 아시리라 생각하고 그 부분은 생략하겠습니다.

Custom TextView를 만들어서 xml에서 사용할때 TextView 대신 커스텀하게 만든 텍스트뷰를 사용하시면 됩니다.

클래스 하나 만드셔서 TextView를 상속받은 다음에 typeface를 넣어주면 됩니다.

뭐.. 비교적 간단한거라 예제나 링크는 본인이 직접 찾으시기 바랍니다..
캬옹이 (37,920 포인트) 님이 2016년 5월 2일 답변
kissout님이 2016년 5월 2일 채택됨
ㅠㅜ 제가 x밥이라... 잘 모릅니다.
폰트를 적용시키는 법이라도 링크를 걸어주세요ㅠㅠㅠ
그럼 순서가 잘못됐네요... 일단 폰트 적용하는법을 알아보고 그 다음에 해야할 부분인데.. 순서대로 공부를 하셔야할거 같아요. 뭐 하고싶은게 있으면 어떤것 부터 해야할지 생각해보시고 하나하나 차근차근 공부해보세요. 소스는 대충 드릴테니 적용해보세요.
참고로 계속 남의 소스만 복붙하시면 발전 하실수가 없을거예요. 다 검색하면 잘나오는 것들인데 검색 한번이라도 해보고 막혔을때 질문을 하시는게 좋습니다.

<코드>
assets/font/폰트.확장자
일단 에셋 폴더안에 font 폴더를 만드시고 폰트파일을 복사해서 넣습니다.

public class CustomTextView extends TextView {

    public CustomTextView(Context context) {
        super(context);
    }

    public CustomTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        setCustomFont(context, attrs);
    }

    public CustomTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        setCustomFont(context, attrs);
    }

    private void setCustomFont(Context ctx, AttributeSet attrs) {
    Typeface tf = Typeface.createFromAsset(ctx.getAssets(), "fonts/폰트.확장자");
    setTypeface(tf);
    }
}

xml에서 사용
<com.package.CustomTextView />

이런식으로 사용하면 됩니다.
TextView에 적용하실때 textView.setTypeFace(Typeface)를 사용하시면 됩니다.
위의 소스는 Main인가요? 아니면 java를 새로 만들어서 적용해야하나요?
그것도 아니면, class를 새로 만들어서 적용해야 하나요?

public class CustomTextView extends TextView <- 이걸 쓰는데 자꾸 이 한줄이

빨간줄이 뜹니다.
...