Pertama, defaultnya bukan Arial. Standarnya adalah Droid Sans.
Kedua, untuk mengubah font bawaan yang berbeda, gunakan android:typefacedalam tata letak XML atau setTypeface()di Jawa.
Ketiga, tidak ada font Helvetica di Android. Pilihan bawaan adalah Droid Sans ( sans), Droid Sans Mono ( monospace), dan Droid Serif ( serif). Meskipun Anda dapat menggabungkan font Anda sendiri dengan aplikasi Anda dan menggunakannya melalui setTypeface(), ingatlah bahwa file font besar dan, dalam beberapa kasus, memerlukan perjanjian lisensi (misalnya, Helvetica, font Linotype ).
EDIT
Bahasa desain Android bergantung pada alat tipografi tradisional seperti skala, ruang, ritme, dan penjajaran dengan kisi yang mendasarinya. Keberhasilan penyebaran alat-alat ini sangat penting untuk membantu pengguna dengan cepat memahami layar informasi. Untuk mendukung penggunaan tipografi seperti itu, Ice Cream Sandwich memperkenalkan keluarga tipe baru bernama Roboto, yang dibuat khusus untuk persyaratan UI dan layar resolusi tinggi.
Kerangka kerja TextView saat ini menawarkan Roboto dalam bobot yang tipis, ringan, teratur, dan tebal, serta gaya miring untuk setiap bobot. Kerangka kerja ini juga menawarkan varian Roboto Condensed dalam bobot reguler dan tebal, bersama dengan gaya miring untuk setiap bobot.
Setelah ICS, android menyertakan gaya font Roboto, Read more Roboto
EDIT 2
Dengan munculnya Support Library 26, Android sekarang mendukung font khusus secara default. Anda dapat menyisipkan font baru di res / font yang dapat diatur ke TextViews secara individu baik dalam XML atau secara terprogram. Font default untuk seluruh aplikasi juga dapat diubah dengan mendefinisikannya styles.xml Dokumentasi pengembang android memiliki panduan yang jelas tentang hal ini di sini
Pengaturan jenis huruf menggunakan kode java sulit karena beberapa baris, saya telah membuat perpustakaan untuk mengatur font khusus. Anda dapat menemukan penggunaan perpustakaan dalam jawaban ini stackoverflow.com/a/42001474/4446392
Chathura Jayanath
254
Pertama-tama unduh .ttffile font yang Anda butuhkan ( arial.ttf). Tempatkan di assets folder. (Folder aset dalam membuat folder baru bernama font dan letakkan di dalamnya.) Gunakan kode berikut untuk menerapkan font ke Anda TextView:
Typeface type =Typeface.createFromAsset(getAssets(),"fonts/arial.ttf");
textView.setTypeface(type);
Anda mungkin ingin membuat kelas statis yang akan berisi semua font. Dengan begitu, Anda tidak akan membuat font berkali-kali yang mungkin berdampak buruk pada kinerja . Pastikan Anda membuat sub-folder yang disebut " fonts " di bawah folder " assets ".
Lakukan sesuatu seperti:
publicclassCustomFontsLoader{publicstaticfinalint FONT_NAME_1 =0;publicstaticfinalint FONT_NAME_2 =1;publicstaticfinalint FONT_NAME_3 =2;privatestaticfinalint NUM_OF_CUSTOM_FONTS =3;privatestaticboolean fontsLoaded =false;privatestaticTypeface[] fonts =newTypeface[3];privatestaticString[] fontPath ={"fonts/FONT_NAME_1.ttf","fonts/FONT_NAME_2.ttf","fonts/FONT_NAME_3.ttf"};/**
* Returns a loaded custom font based on it's identifier.
*
* @param context - the current context
* @param fontIdentifier = the identifier of the requested font
*
* @return Typeface object of the requested font.
*/publicstaticTypeface getTypeface(Context context,int fontIdentifier){if(!fontsLoaded){
loadFonts(context);}return fonts[fontIdentifier];}privatestaticvoid loadFonts(Context context){for(int i =0; i < NUM_OF_CUSTOM_FONTS; i++){
fonts[i]=Typeface.createFromAsset(context.getAssets(), fontPath[i]);}
fontsLoaded =true;}}
Dengan cara ini, Anda bisa mendapatkan font dari mana saja di aplikasi Anda.
Bung yang luar biasa! Ini adalah keindahan OOP. Kerja bagus! :)
Joshua Michael Wagoner
Bagaimana saya menggunakan kelas ini?
Jack
Anda perlu menempatkan kode ini di proyek Anda, menyesuaikannya dengan font Anda dan kemudian menggunakan metode statis getTypeface (..) dari mana-mana di aplikasi Anda.
Daniel L.
Saya menggunakan solusi serupa, tetapi menambahkan caching untuk meningkatkan kinerja .... dalam hal apa pun, apakah Anda menghadapi situasi di mana font berfungsi pada beberapa ponsel dan tidak pada yang lain?
Pikiran Anda, ini idiom penguncian dua kali diperiksa dengan bidang volatil hanya berfungsi dengan benar dengan model memori yang digunakan di Java 1.5+.
Mengapa jawaban ini hanya memiliki 1 upvote dan yang di atas memiliki 15? Apa yang membuat yang lain lebih baik? Menurut saya yang ini lebih lurus menggunakan prinsip singleton ...?
Koen Demonie
Baru saja melihat bahwa Anda memiliki konstruktor untuk publik, saya akan menjadikannya pribadi karena Anda tidak memerlukan akses ke sana. Anda menggunakan
von
Benar-benar harus menjadi konstruktor pribadi. Terlihat dengan baik :) Akan diedit!
Chris Aitchison
12
Praktik terbaik adalah menggunakan Android Support Library versi 26.0.0 atau lebih tinggi.
LANGKAH 1: tambahkan file font
Dalam folder res, buat kamus sumber daya font baru
Tambahkan file font ( .ttf , .orf )
Misalnya, ketika file font adalah helvetica_neue.ttf yang akan menghasilkan R.font.helvetica_neue
LANGKAH 2: buat keluarga font
Dalam folder font tambahkan file sumber daya baru
Lampirkan setiap file font, style, dan atribut weight dalam elemen.
Ini agak tua, tapi saya sedikit meningkatkan kelas CustomFontLoader dan saya ingin membagikannya sehingga dapat membantu. Buat kelas baru dengan kode ini.
kemudian buat direktori bernama "font" di dalam folder res
letakkan file font (ttf) di direktori font itu, ingatlah konvensi penamaan [egname tidak boleh mengandung karakter khusus, karakter huruf besar dan spasi atau tab]
Apakah Anda perlu membuat instance kelas ini di MainActivity? Karena itu tidak mengubah apa pun untuk saya.
Tobias Mayr
1
Android menggunakan font Roboto, yang merupakan font yang terlihat sangat bagus, dengan beberapa bobot berbeda (reguler, ringan, tipis, kental) yang tampak hebat pada layar kepadatan tinggi.
Periksa tautan di bawah ini untuk memeriksa font roboto:
Kembali ke pertanyaan Anda, jika Anda ingin mengubah font untuk semua TextView / Button di aplikasi Anda , coba tambahkan kode di bawah ini ke styles.xml Anda untuk menggunakan font Roboto-light :
<!-- Base application theme. --><stylename="AppTheme"parent="Theme.AppCompat.Light.DarkActionBar"><!-- Customize your theme here.-->......<item name="android:buttonStyle">@style/MyButton</item><item name="android:textViewStyle">@style/MyTextView</item></style><stylename="MyButton"parent="@style/Widget.AppCompat.Button"><item name="android:textAllCaps">false</item><item name="android:fontFamily">sans-serif-light</item></style><stylename="MyTextView"parent="@style/TextAppearance.AppCompat"><item name="android:fontFamily">sans-serif-light</item></style>
Dan jangan lupa untuk menggunakan 'AppTheme' di AndroidManifest.xml Anda
Jawaban:
Pertama, defaultnya bukan Arial. Standarnya adalah Droid Sans.
Kedua, untuk mengubah font bawaan yang berbeda, gunakan
android:typeface
dalam tata letak XML atausetTypeface()
di Jawa.Ketiga, tidak ada font Helvetica di Android. Pilihan bawaan adalah Droid Sans (
sans
), Droid Sans Mono (monospace
), dan Droid Serif (serif
). Meskipun Anda dapat menggabungkan font Anda sendiri dengan aplikasi Anda dan menggunakannya melaluisetTypeface()
, ingatlah bahwa file font besar dan, dalam beberapa kasus, memerlukan perjanjian lisensi (misalnya, Helvetica, font Linotype ).EDIT
Setelah ICS, android menyertakan gaya font Roboto, Read more Roboto
EDIT 2
sumber
Pertama-tama unduh
.ttf
file font yang Anda butuhkan (arial.ttf
). Tempatkan diassets
folder. (Folder aset dalam membuat folder baru bernama font dan letakkan di dalamnya.) Gunakan kode berikut untuk menerapkan font ke AndaTextView
:sumber
src/main/assets/fonts/
.sumber
Anda mungkin ingin membuat kelas statis yang akan berisi semua font. Dengan begitu, Anda tidak akan membuat font berkali-kali yang mungkin berdampak buruk pada kinerja . Pastikan Anda membuat sub-folder yang disebut " fonts " di bawah folder " assets ".
Lakukan sesuatu seperti:
Dengan cara ini, Anda bisa mendapatkan font dari mana saja di aplikasi Anda.
sumber
Praktik terbaik yang pernah ada
TextViewPlus.java:
attrs.xml: (Tempat menempatkan res / nilai )
Cara Penggunaan:
Semoga ini bisa membantu Anda.
sumber
Jawaban di atas benar. Pastikan Anda membuat sub-folder yang disebut "fonts" di bawah folder "assets" jika Anda menggunakan potongan kode itu.
sumber
Cara lain untuk menggabungkan pembuatan font ...
Dan kemudian digunakan dalam aktivitas Anda ...
Pikiran Anda, ini idiom penguncian dua kali diperiksa dengan bidang volatil hanya berfungsi dengan benar dengan model memori yang digunakan di Java 1.5+.
sumber
Praktik terbaik adalah menggunakan Android Support Library versi 26.0.0 atau lebih tinggi.
LANGKAH 1: tambahkan file font
Misalnya, ketika file font adalah helvetica_neue.ttf yang akan menghasilkan R.font.helvetica_neue
LANGKAH 2: buat keluarga font
Sebagai contoh:
LANGKAH 3: gunakan itu
Dalam tata letak xml:
Atau tambahkan font ke gaya:
Untuk lebih banyak contoh, Anda dapat mengikuti dokumentasi:
sumber
Ini agak tua, tapi saya sedikit meningkatkan kelas CustomFontLoader dan saya ingin membagikannya sehingga dapat membantu. Buat kelas baru dengan kode ini.
Kemudian gunakan saja kode ini pada tampilan teks Anda:
sumber
Saya akhirnya mendapat solusi yang sangat mudah untuk ini.
gunakan pustaka Dukungan ini di tingkat tingkat aplikasi ,
kemudian buat direktori bernama "font" di dalam folder res
Setelah itu, referensi font dari xml seperti ini
Dalam contoh ini, times_new_roman_test adalah file font ttf dari direktori font tersebut
sumber
Dengan cara ini, Anda bisa membuat tampilan yang mewarisi dari TextView dan memanggil setTypeface pada konstruktornya.
sumber
Ketika font Anda disimpan di dalam,
res/asset/fonts/Helvetica.ttf
gunakan yang berikut ini:Atau, jika file font Anda disimpan di dalam,
res/font/helvetica.ttf
gunakan yang berikut ini:sumber
dapatkan font dari aset dan atur untuk semua anak
sumber
tambahkan ke attrs.xml, Jumlahnya harus dalam urutan di kelas array.
sumber
Android menggunakan font Roboto, yang merupakan font yang terlihat sangat bagus, dengan beberapa bobot berbeda (reguler, ringan, tipis, kental) yang tampak hebat pada layar kepadatan tinggi.
Periksa tautan di bawah ini untuk memeriksa font roboto:
Cara menggunakan Roboto di tata letak xml
Kembali ke pertanyaan Anda, jika Anda ingin mengubah font untuk semua TextView / Button di aplikasi Anda , coba tambahkan kode di bawah ini ke styles.xml Anda untuk menggunakan font Roboto-light :
Dan jangan lupa untuk menggunakan 'AppTheme' di AndroidManifest.xml Anda
sumber
Mungkin sesuatu yang sedikit lebih sederhana:
(Catat kode ini belum diuji, tetapi secara umum pendekatan ini harus bekerja dengan baik.)
sumber