안드로이드

안드로이드 프래그먼트에 외부폰트 적용하기 set custom font for Android Fragment

알통몬_ 2018. 4. 6. 11:50
반응형


공감 및 댓글은 포스팅 하는데

 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 

도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 

만들어 나가겠습니다^^

 


이번 포스팅에서는 안드로이드 액티비티가 아닌 안드로이드 프래그먼트에

외부 폰트를 적용하는 방법에 대해 알아보겠습니다.


먼저 DataBinding을 사용했음을 알려드립니다.


아주 예전에 액티비티에 외부폰트를 적용하는 방법에 대해 포스팅을 했었는데요.

http://blog.naver.com/rain483/220794050547


이번에는 프래그먼트에 적용하는 방법입니다.

거의 뭐 액티비티에 적용하는 방법이랑 굉장히 비슷합니다.

먼저 setGlobalFont 메서드입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private void setGlobalFont(View view) {
        if(view != null) {
            if(view instanceof ViewGroup) {
                ViewGroup viewGroup = (ViewGroup)view;
                int vgCnt = viewGroup.getChildCount();
                for(int i = 0; i<vgCnt; i++) {
                    View v = viewGroup.getChildAt(i);
                    if(v instanceof TextView) {
                        ((TextView) v).setTypeface(typeface);
                    }
                    setGlobalFont(v);
                }
            }
        }
    }
cs


프래그먼트의 필드에

1
    private static Typeface typeface;
cs

Typeface 를 선언해주세요.


그리고 사용하면 됩니다.

1
2
3
4
5
6
7
8
9
 binding = 
DataBindingUtil.inflate(
                inflater, 
R.layout.fragment_setup, container, false);
        if(typeface == null) {
            typeface = 
Typeface.createFromAsset(getActivity().getAssets(),
 "BMKIRANGHAERANG-TTF.ttf");
        }
        setGlobalFont(binding.getRoot());
cs


위 코드에서 두껍게 된 코드만 사용하시면 됩니다.

만약 DataBinding을 사용하지 않으시면 아래처럼 하시면 됩니다.

1
2
3
4
5
View view = inflater.inflate(R.layout.fragment1, container, false);
        if(typeface == null) {
            typeface = Typeface.createFromAsset(getActivity().getAssets(),
 "BMKIRANGHAERANG-TTF.ttf");
        }
        setGlobalFont(view);
cs


당연히 Fragment의 

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {}

블록 안에서 선언을 해야 합니다 ㅎㅎ

별로 어렵지 않죠?

*단 리스트뷰나 리사이클러뷰에 들어간 TextView 같은 것들에는 폰트 적용이 되지 않아요.


그 방법은 따로 또 정리해서 올리도록 하겠습니다.


이상 안드로이드 프래그먼트에 외부 폰트를 

적용하는 방법에 대해 알아보았습니다. 

hot to set custom font for Android Fragment

감사합니다.



반응형