Android-사용자 정의 글꼴 사용


266

에 맞춤 글꼴을 적용 TextView했지만 서체를 변경하지 않는 것 같습니다.

내 코드는 다음과 같습니다.

    Typeface myTypeface = Typeface.createFromAsset(getAssets(), "fonts/myFont.ttf");
    TextView myTextView = (TextView)findViewById(R.id.myTextView);
    myTextView.setTypeface(myTypeface);

누구 든지이 문제에서 벗어날 수 있습니까?


1
당신의 구문에 오류가있다,해야한다myTextView.setTypeface(myTypeface);
yuttadhammo

이 글타래와 비슷합니다 : stackoverflow.com/a/14558090/693752
Snicolas



다음은 전체 응용 프로그램의 글꼴을 변경하는 효율적인 방법입니다. stackoverflow.com/questions/18847531/…
Diego Palomar

답변:


230

Mobiletuts +에는 Android 용 텍스트 형식에 대한 훌륭한 자습서가 있습니다. 빠른 팁 : Android 글꼴 사용자 정의

편집 : 지금 직접 테스트했습니다. 해결책은 다음과 같습니다. fonts라는 하위 폴더를 사용할 수 있지만 assets폴더가 아닌 폴더에 있어야 res합니다. 그래서

자산 / 글꼴

또한 글꼴 종료는 글꼴 파일 자체의 끝이 모두 소문자인지 확인하십시오. 즉 그것은 안 myFont.TTF하지만, myfont.ttf 이 방법은 소문자로해야합니다


솔루션으로 내 응답을 편집했습니다.
Octavian A. Damiean

실용 데모 프로젝트를 보내 주시겠습니까? assets / fonts / xyz.ttf 및 assets / xyz.ttf 폴더에서 모두 시도했지만 해당 글꼴을 사용하지 않습니다. 기본 글꼴 만 표시합니다.
RATTLESNAKE

2
여기 압축 된 프로젝트에 대한 링크가 있습니다. dl.dropbox.com/u/8288893/customFont.zip
Octavian A. Damiean

5
해당 튜토리얼을 따르는 경우 Typeface.createFromAsset (getAssets (), "fonts / yourfont.ttf") 경로를 사용해야합니다. fonts 서브 디렉토리에
넣으면

createFromAsset함수가 assets디렉토리 내부를 직접 가리
키기

55

이 스레드에 설명 된 대부분의 솔루션을 시도한 후 실수로 응용 프로그램에 사용자 정의 글꼴을 쉽게 추가 할 수있는 Christopher Jenkins의 라이브러리 인 Calligraphy ( https://github.com/chrisjenx/Calligraphy )를 발견했습니다 . 여기에 제안 된 접근법과 비교 한 그의 lib의 장점은 다음과 같습니다.

  1. 자체 재정의 된 TextView 구성 요소를 도입 할 필요가 없으며 내장 된 TextView를 사용합니다.
  2. gradle을 사용하여 라이브러리를 쉽게 포함시킬 수 있습니다
  3. 라이브러리는 글꼴 선택을 제한하지 않습니다. 선호하는 것을 자산 디렉토리에 추가하십시오.
  4. 사용자 정의 텍스트보기뿐만 아니라 다른 모든 텍스트 기반 Android 구성 요소도 사용자 정의 글꼴을 사용하여 표시됩니다.

1
라이브러리 의 크기 는 중요한 질문입니다. 앱의 크기에 영향을 미치기 때문입니다.
eRaisedToX

32

좋은 답변이 이미 있다는 것을 알고 있지만 여기에는 완전히 작동하는 구현이 있습니다.

맞춤 텍스트보기는 다음과 같습니다.

package com.mycompany.myapp.widget;

/**
 * Text view with a custom font.
 * <p/>
 * In the XML, use something like {@code customAttrs:customFont="roboto-thin"}. The list of fonts
 * that are currently supported are defined in the enum {@link CustomFont}. Remember to also add
 * {@code xmlns:customAttrs="http://schemas.android.com/apk/res-auto"} in the header.
 */
public class CustomFontTextView extends TextView {

    private static final String sScheme =
            "http://schemas.android.com/apk/res-auto";
    private static final String sAttribute = "customFont";

    static enum CustomFont {
        ROBOTO_THIN("fonts/Roboto-Thin.ttf"),
        ROBOTO_LIGHT("fonts/Roboto-Light.ttf");

        private final String fileName;

        CustomFont(String fileName) {
            this.fileName = fileName;
        }

        static CustomFont fromString(String fontName) {
            return CustomFont.valueOf(fontName.toUpperCase(Locale.US));
        }

        public Typeface asTypeface(Context context) {
            return Typeface.createFromAsset(context.getAssets(), fileName);
        }
    }

    public CustomFontTextView(Context context, AttributeSet attrs) {
        super(context, attrs);

        if (isInEditMode()) {
            return;
        } else {
            final String fontName = attrs.getAttributeValue(sScheme, sAttribute);

            if (fontName == null) {
                throw new IllegalArgumentException("You must provide \"" + sAttribute + "\" for your text view");
            } else {
                final Typeface customTypeface = CustomFont.fromString(fontName).asTypeface(context);
                setTypeface(customTypeface);
            }
        }
    }
}

맞춤 속성은 다음과 같습니다. res/attrs.xml파일 로 이동해야 합니다.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="CustomFontTextView">
        <attr name="customFont" format="string"/>
    </declare-styleable>
</resources>

사용 방법은 다음과 같습니다. 상대 레이아웃을 사용하여 줄 바꿈하고 customAttr선언을 표시 하지만 이미 존재하는 레이아웃 일 수 있습니다.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:customAttrs="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.mycompany.myapp.widget.CustomFontTextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="foobar"
         customAttrs:customFont="roboto_thin" />

</RelativeLayout>

customAttrs내 프로젝트에서 무엇을 의미합니까?
Skynet

@Skynet 루트 뷰에 정의 된 네임 스페이스를 나타냅니다 xmlns:customAttrs="http://schemas.android.com/apk/res-auto". 사용자 정의보기에 설정된 속성이 자동으로 가져옵니다. 이 경우 attrs.xml에 customFont라는 속성이 정의되어 있습니다. 이해하기 쉬운 방법은 xmlns:android="http://schemas.android.com/apk/res/android"안드로이드 속성의 네임 스페이스를 정의하는 것입니다. 그래서 당신 aandroid:text그것을 대신에 변경했다면 a:text.
CodyEngel

14

나는 이것을 전에 성공적으로 사용했다. 우리 구현의 유일한 차이점은 자산에 하위 폴더를 사용하지 않았다는 것입니다. 그래도 변경 될지 확실하지 않습니다.


13

글꼴을 올바른 위치에 배치하고 글꼴 파일 자체에 오류가없는 경우 코드는 RATTLESNAKE와 같이 작동합니다.

그러나 레이아웃 xml에서 글꼴을 다음과 같이 정의 할 수 있다면 훨씬 쉬울 것입니다.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <!-- This text view is styled with the app theme -->
    <com.innovattic.font.FontTextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This uses my font in bold italic style" />

    <!-- This text view is styled here and overrides the app theme -->
    <com.innovattic.font.FontTextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:flFont="anotherFont"
        android:textStyle="normal"
        android:text="This uses another font in normal style" />

    <!-- This text view is styled with a style and overrides the app theme -->
    <com.innovattic.font.FontTextView
        style="@style/StylishFont"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This also uses another font in normal style" />

</LinearLayout>

함께 res/values/styles.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">

    <!-- Application theme -->
    <!-- Use a different parent if you don't want Holo Light -->
    <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
        <item name="android:textViewStyle">@style/MyTextViewStyle</item>
    </style>

    <!-- Style to use for ALL text views (including FontTextView) -->
    <!-- Use a different parent if you don't want Holo Light -->
    <style name="MyTextViewStyle" parent="@android:style/Widget.Holo.Light.TextView">
        <item name="android:textAppearance">@style/MyTextAppearance</item>
    </style>

    <!-- Text appearance to use for ALL text views (including FontTextView) -->
    <!-- Use a different parent if you don't want Holo Light -->
    <style name="MyTextAppearance" parent="@android:style/TextAppearance.Holo">
        <!-- Alternatively, reference this font with the name "aspergit" -->
        <!-- Note that only our own TextView's will use the font attribute -->
        <item name="flFont">someFont</item>
        <item name="android:textStyle">bold|italic</item>
    </style>

    <!-- Alternative style, maybe for some other widget -->
    <style name="StylishFont">
        <item name="flFont">anotherFont</item>
        <item name="android:textStyle">normal</item>
    </style>

</resources>

이 목적을 위해 특별히 몇 가지 도구를 만들었습니다. GitHub 에서이 프로젝트 를 참조 하거나 전체 내용을 설명하는 이 블로그 게시물 을 살펴보십시오 .


13

안드로이드 O의 프리뷰 버전에서 그것을 할 수있는 가장 좋은 방법은이 방법이다 :

그것은 당신이 안드로이드 스튜디오 2.4 이상이있는 경우에만 작동합니다

  1. 마우스 오른쪽 버튼을 클릭하면 폴더 고해상도을 하고 이동 새로 만들기> 안드로이드 자원 디렉토리 . New
    Resource Directory 창이 나타납니다.
  2. 리소스 종류 목록에서 font 를 선택한 다음 확인을 클릭합니다.
  3. 글꼴 폴더에 글꼴 파일을 추가합니다 아래 생성 국지적 인 폴더 구조 R.font.dancing_script, R.font.la_laR.font.ba_ba.
  4. 글꼴 파일을 두 번 클릭 하여 편집기에서 파일의 글꼴을 미리 봅니다.

다음으로 폰트 패밀리를 만들어야합니다 :

  1. 글꼴 폴더를 마우스 오른쪽 단추로 클릭하고 새로 작성> 글꼴 자원 파일 로 이동 하십시오 . 새 리소스 파일 창이 나타납니다.
  2. 파일 이름을 입력 한 다음 확인을 클릭하십시오 . 새 글꼴 리소스 XML이 편집기에서 열립니다.
  3. 각 글꼴 파일, 스타일 및 가중치 속성을 글꼴 태그 요소로 묶습니다. 다음 XML은 글꼴 자원 XML에 글꼴 관련 속성을 추가하는 방법을 보여줍니다.

TextView에 글꼴 추가하기 :

   <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:fontFamily="@font/hey_fontfamily"/>

설명서에서와 같이

폰트로 작업하기

모든 단계가 정확합니다.


4
ony api> 26 ((
maXp


이것은 꽤 큰 단계 # 3이 빠져 있습니다 ... 어떻게합니까?
Code Wiget

12

android의 사용자 정의 글꼴의 경우 자산 폴더 이름 내에 폴더를 작성하십시오. "fonts"원하는 fonts.ttf 또는 .otf 파일을 저장하십시오.

UIBaseFragment를 확장하는 경우 :

Typeface font = Typeface.createFromAsset(getActivity().getAssets(), "fonts/Arial.ttf");
        tv.setTypeface(font);

그렇지 않으면 활동을 확장하는 경우 :

Typeface font = Typeface.createFromAsset(getContext().getAssets(), "fonts/Arial.ttf");
        tv.setTypeface(font);

7

https://github.com/neopixl/PixlUI 에서 PixlUI를 사용할 수 있습니다

.jar을 가져 와서 XML로 사용하십시오.

 <com.neopixl.pixlui.components.textview.TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world"
    pixlui:typeface="GearedSlab.ttf" />

4

SO에 대해 제시된 모든 솔루션에 만족하지 못했기 때문에 내 것을 생각해 냈습니다. 태그가있는 약간의 트릭을 기반으로합니다 (즉, 코드에서 태그를 사용할 수 없음). 글꼴 경로를 거기에 넣습니다. 따라서 뷰를 정의 할 때 다음 중 하나를 수행 할 수 있습니다.

<TextView
        android:id="@+id/textViewHello1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World 1"
        android:tag="fonts/Oswald-Regular.ttf"/>

아니면 이거:

<TextView
        android:id="@+id/textViewHello2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World 2"
        style="@style/OswaldTextAppearance"/>

<style name="OswaldTextAppearance">
        <item name="android:tag">fonts/Oswald-Regular.ttf</item>
        <item name="android:textColor">#000000</item>
</style>

이제 다음과 같이 뷰에 명시 적으로 액세스 / 설정할 수 있습니다.

TextView textView = TextViewHelper.setupTextView(this, R.id.textViewHello1).setText("blah");

또는 다음을 통해 모든 것을 설정하십시오.

TextViewHelper.setupTextViews(this, (ViewGroup) findViewById(R.id.parentLayout)); // parentLayout is the root view group (relative layout in my case)

그리고 당신이 요구하는 매직 클래스는 무엇입니까? 활동과 프래그먼트 모두에 대한 도우미 메소드를 사용하여 다른 SO 게시물에서 대부분 접착되었습니다.

import android.app.Activity;
import android.content.Context;
import android.graphics.Typeface;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import java.util.HashMap;
import java.util.Map;

public class TextViewHelper {
    private static final Map<String, Typeface> mFontCache = new HashMap<>();

    private static Typeface getTypeface(Context context, String fontPath) {
        Typeface typeface;
        if (mFontCache.containsKey(fontPath)) {
            typeface = mFontCache.get(fontPath);
        } else {
            typeface = Typeface.createFromAsset(context.getAssets(), fontPath);
            mFontCache.put(fontPath, typeface);
        }
        return typeface;
    }

    public static void setupTextViews(Context context, ViewGroup parent) {
        for (int i = parent.getChildCount() - 1; i >= 0; i--) {
            final View child = parent.getChildAt(i);
            if (child instanceof ViewGroup) {
                setupTextViews(context, (ViewGroup) child);
            } else {
                if (child != null) {
                    TextViewHelper.setupTextView(context, child);
                }
            }
        }
    }

    public static void setupTextView(Context context, View view) {
        if (view instanceof TextView) {
            if (view.getTag() != null) // also inherited from TextView's style
            {
                TextView textView = (TextView) view;
                String fontPath = (String) textView.getTag();
                Typeface typeface = getTypeface(context, fontPath);
                if (typeface != null) {
                    textView.setTypeface(typeface);
                }
            }
        }
    }

    public static TextView setupTextView(View rootView, int id) {
        TextView textView = (TextView) rootView.findViewById(id);
        setupTextView(rootView.getContext().getApplicationContext(), textView);
        return textView;
    }

    public static TextView setupTextView(Activity activity, int id) {
        TextView textView = (TextView) activity.findViewById(id);
        setupTextView(activity.getApplicationContext(), textView);
        return textView;
    }
}

4

불행히도 이것에 대한 좋은 해결책은 없습니다.

사용자 정의 TextView 사용에 대한 많은 기사를 보았지만 글꼴을 구현할 수있는 텍스트 뷰뿐만 아니라 개발자가 액세스 할 수없는 다른 뷰에는 텍스트 뷰가 숨겨져 있다는 것을 잊었습니다. Spannable을 시작 하지도 않습니다 입니다.

다음과 같은 외부 글꼴 유틸리티를 사용할 수 있습니다.

서예 글꼴 도구

그러나 이것은 응용 프로그램의 생성시 응용 프로그램의 모든 뷰를 반복 하며이 유틸리티조차도 일부 뷰가 누락되어 (ViewPager가 일반 글꼴을 렌더링 함) Google에서 빌드 도구를 업데이트 할 때 더 이상 사용되지 않는 속성을 대상으로해야하기 때문에 충돌이 발생하는 문제가 있습니다. Java의 Reflection을 사용하기 때문에 약간 느립니다. .

이 문제를 해결하는 것은 Google의 책임입니다. Android에서 더 나은 글꼴 지원이 필요합니다. iOS의 솔루션을 보면 말 그대로 100 개의 글꼴이 내장되어 있습니다. 맞춤 글꼴을 원하십니까? TFF를 떨어 뜨리면 사용할 수 있습니다 ..

현재 Google은 Google에서 제공하는 제품으로 제한되어 있지만 매우 제한적이지만 다행스럽게도 모바일에 최적화되었습니다.


2

super를 호출 한 후 setContentView ()를 호출 한 후 위의 코드를 onCreate ()에 붙여 넣어야합니다. 이 작은 세부 사항은 잠시 동안 끊었습니다.


2

응용 프로그램에서 사용자 정의 글꼴을 사용하는 Android 8.0을 사용 하면 쉽게 사용할 수 있습니다 downloadable fonts. res/font/ folder프로젝트 폴더에 직접 글꼴을 추가하면 Android Studio에서 글꼴을 자동으로 사용할 수 있습니다.

이름 글꼴 및 유형 글꼴로 해상도 아래 폴더

이제 fontFamily속성을 글꼴 목록으로 설정 하거나 추가를 클릭하고 원하는 글꼴을 선택하십시오. TextView 추가 tools:fontFamily="@font/your_font_file"됩니다.

이렇게하면 파일이 자동으로 생성되지 않습니다.

1. 값 폴더에을 만듭니다 fonts_certs.xml.

2. Manifest에서 다음 줄을 추가합니다.

  <meta-data
            android:name="preloaded_fonts"
            android:resource="@array/preloaded_fonts" /> 

삼. preloaded_fonts.xml

<resources>
    <array name="preloaded_fonts" translatable="false">
        <item>@font/open_sans_regular</item>
        <item>@font/open_sans_semibold</item>
    </array>
</resources>

2

쉽고 간단한 EasyFonts 타사 라이브러리를 사용하여 다양한 사용자 정의 글꼴을TextView . 이 라이브러리를 사용하면 글꼴을 다운로드하여 자산 / 글꼴 폴더에 추가하는 것에 대해 걱정할 필요가 없습니다. 서체 개체 생성에 대해서도.

대신에

Typeface myTypeface = Typeface.createFromAsset(getAssets(), "fonts/myFont.ttf");
TextView myTextView = (TextView)findViewById(R.id.myTextView);
myTextView.setTypeface(myTypeface);

간단히:

TextView myTextView = (TextView)findViewById(R.id.myTextView);
myTextView.setTypeface(EasyFonts.robotoThin(this));

이 라이브러리는 또한 다음과 같은 글꼴을 제공합니다.

  • 로보 토
  • 드로이드 세리프
  • 드로이드 로봇
  • 자유
  • 펀 라이저
  • 안드로이드 국가
  • 그린 아보카도
  • 인식

1

나는 같은 문제가 있었는데, TTF는 나타나지 않았다. 글꼴 파일을 변경했으며 동일한 코드로 작동합니다.


1

네트워크에서 글꼴을로드하거나 쉽게 스타일을 지정하려면 다음을 사용할 수 있습니다.

https://github.com/shellum/fontView

예:

<!--Layout-->
<com.finalhack.fontview.FontView
        android:id="@+id/someFontIcon"
        android:layout_width="80dp"
        android:layout_height="80dp" />

//Java:
fontView.setupFont("http://blah.com/myfont.ttf", true, character, FontView.ImageType.CIRCLE);
fontView.addForegroundColor(Color.RED);
fontView.addBackgroundColor(Color.WHITE);

1

글쎄, 7 년 후에 라이브러리 26 ++ textView을 사용하여 전체 앱 또는 원하는 것을 쉽게 변경할 수 있습니다 android.support.

예 :

서체 패키지 app / src / res / font를 생성 하고 서체로 이동하십시오.

여기에 이미지 설명을 입력하십시오

그리고 앱 테마에서 fontFamily로 추가하십시오.

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
   . . . ...
    <item name="android:fontFamily">@font/demo</item>
</style>

다음과 함께 사용하는 예 textView:

<style name="fontTextView" parent="@android:style/Widget.TextView">
    <item name="android:fontFamily">monospace</item>
</style>

그리고 당신의 주요 테마에 추가하십시오 :

<item name="android:textViewStyle">@style/fontTextView</item>

현재는 8.1 ~ 4.1 API Jelly Bean 에서 작동했으며 광범위합니다.


1

답변 업데이트 : Android 8.0 (API 레벨 26)에는 새로운 기능인 Fonts in XML이 도입되었습니다. Android 4.1 (API 레벨 16) 이상을 실행하는 장치에서 XML의 글꼴 기능을 사용하려면 지원 라이브러리 26을 사용하십시오.

링크를보십시오


이전 답변

글꼴을 사용자 정의하는 두 가지 방법이 있습니다.

!!! assets / fonts / iran_sans.ttf의 내 사용자 정의 글꼴



방법 1 : Refrection Typeface.class ||| 가장 좋은 방법은

클래스 확장에서 FontsOverride.setDefaultFont ()를 호출하면 응용 프로그램이 확장됩니다.이 코드는 모든 소프트웨어 글꼴이 변경되도록합니다.

AppController.java

public class AppController extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        //Initial Font
        FontsOverride.setDefaultFont(getApplicationContext(), "MONOSPACE", "fonts/iran_sans.ttf");

    }
}

FontsOverride.java

public class FontsOverride {

    public static void setDefaultFont(Context context, String staticTypefaceFieldName, String fontAssetName) {
        final Typeface regular = Typeface.createFromAsset(context.getAssets(), fontAssetName);
        replaceFont(staticTypefaceFieldName, regular);
    }

    private static void replaceFont(String staticTypefaceFieldName, final Typeface newTypeface) {
        try {
            final Field staticField = Typeface.class.getDeclaredField(staticTypefaceFieldName);
            staticField.setAccessible(true);
            staticField.set(null, newTypeface);
        } catch (NoSuchFieldException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
    }
}



방법 2 : setTypeface 사용

특별보기를 위해 setTypeface ()를 호출하여 글꼴을 변경하십시오.

CTextView.java

public class CTextView extends TextView {

    public CTextView(Context context) {
        super(context);
        init(context,null);
    }

    public CTextView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        init(context,attrs);
    }

    public CTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init(context,attrs);
    }

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    public CTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
        init(context,attrs);
    }

    public void init(Context context, @Nullable AttributeSet attrs) {

        if (isInEditMode())
            return;

        // use setTypeface for change font this view
        setTypeface(FontUtils.getTypeface("fonts/iran_sans.ttf"));

    }
}

FontUtils.java

public class FontUtils {

    private static Hashtable<String, Typeface> fontCache = new Hashtable<>();

    public static Typeface getTypeface(String fontName) {
        Typeface tf = fontCache.get(fontName);
        if (tf == null) {
            try {
                tf = Typeface.createFromAsset(AppController.getInstance().getApplicationContext().getAssets(), fontName);
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
            fontCache.put(fontName, tf);
        }
        return tf;
    }

}



0
  • 프로젝트를 열고 왼쪽 상단 에서 프로젝트 를 선택하십시오.
  • app- > src- > main
  • 메인을 마우스 오른쪽 버튼으로 클릭하고 디렉토리 이름을 자산 으로 만듭니다.
  • 마우스 오른쪽 버튼을 클릭하여 확인하고 글꼴 이름을 지정하십시오.
  • 무료 글꼴과 같은 무료 글꼴 을 찾아야합니다.
  • Textview에 제공하고 Activity 클래스에서 호출하십시오.
  • 서체 폴더 안에 서체를 복사하십시오
  • TextView txt = (TextView) findViewById(R.id.txt_act_spalsh_welcome); Typeface font = Typeface.createFromAsset(getAssets(), "fonts/Aramis Italic.ttf"); txt.setTypeface(font);

글꼴 이름이 정확하고 재미 있어야합니다.


0

예, Dipali가 말했듯 이 다운로드 가능한 글꼴은 매우 쉽습니다 .

이것이 당신이하는 방법입니다 ...

  1. 를 배치하십시오 TextView.
  2. 속성 창에서 fontFamily드롭 다운을 선택하십시오 . 없는 경우 캐럿 항목을 찾은 다음 (>을 클릭하여 펼치십시오 textAppearance).
  3. font-family드롭 다운을 펼치 십시오.
  4. 작은 목록에서 볼 때까지 아래로 스크롤하십시오. more fonts
  5. 그러면 검색 할 수있는 대화 상자가 열립니다 Google Fonts
  6. 상단의 검색 창을 사용하여 원하는 글꼴을 검색하십시오.
  7. 글꼴을 선택하십시오.
  8. 원하는 글꼴 스타일을 선택하십시오 (예 : 굵게, 보통, 기울임 꼴 등)
  9. 오른쪽 창에서 라디오 버튼을 선택하십시오. Add font to project
  10. 확인을 클릭하십시오. 이제 TextView에 원하는 글꼴이 있습니다!

보너스 : 당신은 단지 추가, 선택 글꼴을 사용하여 응용 프로그램에 텍스트 스타일의 모든 것을 원하는 경우 <item name="android:fontfamily">@font/fontnamehere</item>에 당신의styles.xml


당신은 내 대답보다 감사해야합니다! :)
Dipali s.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.