Odpowiedzi:
Aktualizacja 2020:
Utwórz folder o nazwie czcionka w folderze res i skopiuj czcionkę
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/abc_font" />
Do użytku programowego:
textView.setTypeface(ResourcesCompat.getFont(context, R.font.abc_font))
Wybierz Plik> Nowy> Folder> Folder zasobów
Kliknij koniec
Kliknij zasoby prawym przyciskiem myszy i utwórz folder o nazwie czcionki
Umieść plik czcionek w zasobach > czcionek
Użyj kodu poniżej, aby zmienić czcionkę textView
TextView textView = (TextView) findViewById(R.id.textView);
Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/yourfont.ttf");
textView.setTypeface(typeface);
Istnieje wiele sposobów ustawiania niestandardowej rodziny czcionek w polu, a ja używam w ten sposób poniżej.
Aby dodać czcionki jako zasoby, wykonaj następujące kroki w Android Studio:
1) Kliknij prawym przyciskiem myszy folder res i wybierz Nowy> katalog zasobów Androida. Zostanie wyświetlone okno Nowy katalog zasobów.
2) Na liście Typ zasobu wybierz czcionkę, a następnie kliknij przycisk OK.
Uwaga: Nazwa katalogu zasobów musi być czcionką.
3) Dodaj pliki czcionek w folderze czcionek.
Dodaj czcionkę w żądanym widoku w pliku xml:
Uwaga: Wymagały do tego jednak następujących rzeczy:
Android Studio powyżej do wersji kanaryjskiej 3.0.
Twoja aktywność rozszerza AppCompatActivity.
Zaktualizuj plik Gradle w ten sposób:
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
minSdkVersion 19
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildtoolsVersion
powyżej 26 i minimum targetSdkVersion
wymagane 26
classpath 'com.android.tools.build:gradle:3.0.0-beta4'
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
Myślę, że zamiast pobierać plik .ttf, możemy użyć czcionek Google. Jest bardzo łatwy do wdrożenia. tylko ty musisz wykonać następujące kroki. krok 1) Otwórz layout.xml projektu i wybierz rodzinę czcionek widoku tekstu w atrybutach (załączony zrzut ekranu odniesienia)
krok 2) W rodzinie czcionek wybierz opcję Więcej czcionek .., jeśli twojej czcionki tam nie ma. wtedy zobaczysz nowe okno, w którym możesz wpisać wymaganą czcionkę i wybrać żądaną czcionkę z tej listy, tj. Zwykła, pogrubiona, kursywa itp., jak pokazano na poniższym obrazku.
krok 3) Następnie zobaczysz, że folder czcionek zostanie automatycznie wygenerowany w folderze / res z wybranym plikiem xml czcionek.
Następnie możesz bezpośrednio użyć tej rodziny czcionek w formacie xml as
android:fontFamily="@font/josefin_sans_bold"
lub pro gramatycznie można to osiągnąć za pomocą
Typeface typeface = ResourcesCompat.getFont(this, R.font.app_font);
fontText.setTypeface(typeface);
Witaj tutaj, mamy lepszy sposób na stosowanie czcionek na EditTexts i TextViews na Androidzie i stosowanie go w całym projekcie.
Przede wszystkim musisz utworzyć folder czcionek. Oto kroki.
1: Przejdź do (folderu projektu) Następnie aplikacja> src> main
2: Utwórz foldery o nazwie „zasoby / czcionki” w folderze głównym.
3: Umieść czcionki w folderze czcionek. Tutaj mam „MavenPro-Regular.ttf”
Oto kroki, które należy wykonać, aby zastosować niestandardowe czcionki w EditText i stosując to podejście, możesz zastosować czcionki do każdego wejścia.
1: Utwórz klasę MyEditText (preferowana nazwa ...)
2: która rozszerza EditText
3: Zastosuj czcionkę
Oto kod Przykład;
public class MyEditText extends EditText {
public MyEditText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
public MyEditText(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public MyEditText(Context context) {
super(context);
init();
}
private void init() {
if (!isInEditMode()) {
Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "fonts/MavenPro-Regular.ttf");
setTypeface(tf);
}
}
}
A tutaj jest kod, jak go używać.
MyEditText editText = (MyEditText) findViewById(R.id.editText);
editText.setText("Hello");
Lub w pliku xml
<MyEditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:textColor="#fff"
android:textSize="16dp"
android:id="@+id/editText"
/>
Dzięki Bibliotece pomocy 26.0 (i Android O) czcionki można łatwo ładować z zasobów za pomocą:
Typeface typeface = ResourcesCompat.getFont(Context context, int fontResourceId)
Więcej informacji można znaleźć tutaj.
Chcę dodać swoją odpowiedź dla Androida-O i Android Studio 2.4
Utwórz folder o nazwie czcionka w folderze res . Pobierz różne czcionki, które chcesz dodać do swojego projektu, przykładowe czcionki Google
Wewnątrz rodziny czcionek użytkownika xml
przykład:
<TextView
android:fontFamily="@font/indie_flower"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:text="@string/sample_text" />
3. Jeśli chcesz, aby było to programowe, użyj następującego kodu
Typeface typeface = getResources().getFont(R.font.indie_flower);
textView.setTypeface(typeface);
Aby uzyskać więcej informacji, kliknij link do mojego postu na blogu Style czcionek dla Androida z Android Studio 2.4
Zgodnie z nową funkcją dostępną w systemie Android O zasoby czcionek w formacie XML są dostępne jako nowa funkcja.
Aby dodać czcionki jako zasoby, wykonaj następujące kroki w Android Studio:
1) Kliknij prawym przyciskiem myszy folder res i wybierz Nowy> katalog zasobów Androida . Zostanie wyświetlone okno Nowy katalog zasobów.
2) Na liście Typ zasobu wybierz czcionkę , a następnie kliknij przycisk OK.
Uwaga: Nazwa katalogu zasobów musi być czcionką.
3) Dodaj pliki czcionek w folderze czcionek.
Możesz uzyskać dostęp do zasobów czcionek za pomocą nowego typu zasobu, czcionki. Na przykład, aby uzyskać dostęp do zasobu czcionek, użyj @ font / myfont lub R.font.myfont.
na przykład. Typeface typeface = getResources().getFont(R.font.myfont);
textView.setTypeface(typeface);
Możesz użyć łatwej i prostej biblioteki innej firmy EasyFonts, aby ustawić różnorodne niestandardowe czcionki TextView
. Korzystając z tej biblioteki, nie musisz się martwić o pobieranie i dodawanie czcionek do folderu asset / fonts. Także o tworzeniu obiektów kroju pisma. Będziesz również wolny od tworzenia folderu zasobów.
Po prostu:
TextView myTextView = (TextView)findViewById(R.id.myTextView);
myTextView.setTypeface(EasyFonts.robotoThin(this));
Istnieje wiele rodzajów czcionek udostępnianych przez tę bibliotekę.
1. dodaj plik font.ttf do folderu czcionek. Następnie dodaj ten wiersz w metodzie onCreate
Typeface typeface = ResourcesCompat.getFont(getApplicationContext(), R.font.myfont);
mytextView.setTypeface(typeface);
A oto mój xml
<TextView
android:id="@+id/idtext1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="7dp"
android:gravity="center"
android:text="My Text"
android:textColor="#000"
android:textSize="10sp"
/>
Aby przypisać czcionkę do tekstu Zobacz:
TextView textView = (TextView) findViewById(R.id.your_textView);
final Typeface font = Typeface.createFromAsset(context.getAssets(), "fonts/your_font_name");
twoja_font_nazwa zawiera rozszerzenie czcionki.
Jeśli jesteś bardzo nowy na Androida, tak jak ja, może to być trochę trudne. Upewnij się, że dzwonisz:
TextView myTextView = (TextView) findViewById(R.id.textView);
Typeface typeface=Typeface.createFromAsset(getAssets(), "fonts/your font.ttf");
myTextView.setTypeface(typeface);
metoda w ramach metody takiej jak onCreate
.
Android 8.0 (API 26) wprowadził nowe funkcje związane z czcionkami.
1) Czcionki mogą być używane jako zasoby.
2) Czcionki do pobrania.
Jeśli chcesz używać czcionek zewnętrznych w aplikacji na Androida, możesz dołączyć pliki czcionek do apk lub skonfigurować czcionki do pobrania.
Dołączanie plików czcionek do APK : Możesz pobierać pliki czcionek, zapisywać je w res / font filer, definiować rodzinę czcionek i używać rodziny czcionek w stylach.
Aby uzyskać więcej informacji na temat używania niestandardowych czcionek jako zasobów, patrz http://www.zoftino.com/android-using-custom-fonts
Konfigurowanie czcionek do pobrania : Zdefiniuj czcionkę, podając szczegóły dostawcy czcionki, dodaj certyfikat dostawcy czcionki i używaj czcionek w stylach.
Aby uzyskać więcej informacji na temat czcionek do pobrania, zobacz http://www.zoftino.com/downloading-fonts-android
Najpierw utwórz assets
folder, a następnie utwórz fonts
w nim folder.
Następnie możesz ustawić font
z assets
lub directory
poniżej:
public class FontSampler extends Activity {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
TextView tv = (TextView) findViewById(R.id.custom);
Typeface face = Typeface.createFromAsset(getAssets(), "fonts/HandmadeTypewriter.ttf");
tv.setTypeface(face);
File font = new File(Environment.getExternalStorageDirectory(), "MgOpenCosmeticaBold.ttf");
if (font.exists()) {
tv = (TextView) findViewById(R.id.file);
face = Typeface.createFromFile(font);
tv.setTypeface(face);
} else {
findViewById(R.id.filerow).setVisibility(View.GONE);
}
}
}
Teraz jest tak wiele sposobów na zastosowanie czcionki. Jednym z najłatwiejszych sposobów jest: 1) Kliknij prawym przyciskiem myszy folder res i wybierz Nowy> katalog zasobów Androida.
2) Z listy Typ zasobu wybierz czcionkę, a następnie kliknij przycisk OK.
3) Umieść pliki czcionek w folderze czcionek.
Dodaj swoje czcionki do folderu zasobów w aplikacji / src / main / resources, aby utworzyć niestandardowy widok tekstu w ten sposób:
class CustomLightTextView : TextView {
constructor(context: Context) : super(context){
attachFont(context)
}
constructor(context: Context, attrs: AttributeSet): super(context, attrs){
attachFont(context)
}
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
attachFont(context)
}
fun attachFont(context: Context) {
this.setTypeface(FontCache.getInstance().getLightFont(context))
}
}
Dodaj FontCache: abyś nie musiał ciągle tworzyć krojów pisma, takich jak:
class FontCache private constructor(){
val fontMap = HashMap<String,Typeface>()
companion object {
private var mInstance : FontCache?=null
fun getInstance():FontCache = mInstance?: synchronized(this){
return mInstance?:FontCache().also { mInstance=it }
}
}
fun getLightFont(context: Context):Typeface?{
if(!fontMap.containsKey("light")){
Typeface.createFromAsset(context.getAssets(),"Gotham-Book.otf");
fontMap.put("light",Typeface.createFromAsset(context.getAssets(),"Gotham-Book.otf"))
}
return fontMap.get("light")
}
}
I gotowe!
PS Od Androida O możesz bezpośrednio dodawać czcionki.
umieść czcionki w folderze zasobów, a następnie zastosuj fontfamily: '' swoje czcionki
Dla nowych czytelników
Możesz użyć tej biblioteki Gloxey Custom Font Views
stopień zależności
dependencies{
compile 'io.gloxey.cfv:custom-font-views:1.0.2'
}
Jak używać?
Utwórz zasoby folderów -> czcionki . Skopiuj czcionki do folderu czcionek .
Użyj aplikacji właściwości : font_name = "font_name_string", aby zastosować czcionkę w widoku.
Przykład
<!--Font Names in srings.xml-->
<string name="aadhunik">aadhunik.ttf</string>
<string name="kung_fool">kungfool.ttf</string>
<string name="skrova">skrova.otf</string>
<string name="painting_in_the_sun_light">painting_in_the_sun_light.ttf</string>
<!--Include views in layout.xml-->
<io.gloxey.cfv.CFTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Aadhunik"
android:textColor="#ff00"
android:textSize="40sp"
app:font_name="@string/aadhunik" />
<io.gloxey.cfv.CFButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Kung Fool"
android:textColor="#154748"
app:font_name="@string/kung_fool" />
<io.gloxey.cfv.CFEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Hello world"
android:textSize="30sp"
app:font_name="@string/skrova" />
<io.gloxey.cfv.CFCheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Painting In The Sun Light"
android:textSize="30sp"
app:font_name="@string/painting_in_the_sun_light" />