Dalam jawaban pertanyaan pengguna daftar nilai untuk android:fontFamily
dan 12 varian (lihat di bawah). Di mana nilai-nilai ini berasal? Dokumentasi untuk android:fontFamily
tidak mencantumkan informasi ini di setiap tempat (saya diperiksa di sini, dan di sini). String yang tercantum di Android styles.xml file di berbagai tempat, tapi bagaimana ini peta kembali ke Roboto font?
Dari android 4.1 / 4.2, berikut Roboto font keluarga tersedia:
android:fontFamily="sans-serif" // roboto regular android:fontFamily="sans-serif-cahaya" // roboto cahaya android:fontFamily="sans-serif condensed" // roboto condensed android:fontFamily="sans-serif-tipis" // roboto tipis (android 4.2) android:fontFamily="sans-serif-menengah" // roboto medium (android 5.0)
dalam kombinasi dengan ini
android:textStyle="normal|bold|italic"
12 varian yang mungkin:
- Regular
- Italic
- Berani
- Bold-italic
- Cahaya
- Cahaya-italic
- Tipis
- Tipis-italic
- Kental reguler
- Kental italic
- Condensed bold
- Condensed bold-italic
Dalam styles.xml
file dalam aplikasi I'm bekerja pada seseorang yang terdaftar sebagai keluarga font, dan I'm cukup yakin itu's salah:
<nama barang="android:fontFamily">Roboto-Regular.ttf</item>
I'd untuk mendapatkan tema untuk aplikasi kami atur dengan benar (termasuk menggunakan fontFamily dengan benar) dan menghapus semua redundansi yang dalam beberapa gaya yang dibuat sebelum saya telah melihat file.
di Mana nilai-nilai ini berasal? Dokumentasi untuk android:fontFamily tidak mencantumkan informasi ini di setiap tempat
Ini memang tidak tercantum dalam dokumentasi. Tapi mereka disebutkan di sini di bawah bagian 'Font keluarga'. Daftar dokumen baru setiap API publik untuk Android Jelly Bean 4.1.
Di styles.xml file dalam aplikasi I'm bekerja pada seseorang yang terdaftar sebagai keluarga font, dan I'm cukup yakin itu's salah:
Ya, itu's salah. Anda don't referensi file font, anda harus menggunakan jenis huruf nama yang disebutkan dalam dokumen terkait di atas. Dalam hal ini seharusnya ini:
<item name="android:fontFamily">sans-serif</item>
Seperti terkait jawaban sudah menyatakan, 12 varian yang mungkin:
Reguler (default):
<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">normal</item>
Italic:
<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">italic</item>
Tebal:
<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">bold</item>
Bold-italic:
<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">bold|italic</item>
Cahaya:
<item name="android:fontFamily">sans-serif-light</item>
<item name="android:textStyle">normal</item>
Cahaya-italic:
<item name="android:fontFamily">sans-serif-light</item>
<item name="android:textStyle">italic</item>
Tipis :
<item name="android:fontFamily">sans-serif-thin</item>
<item name="android:textStyle">normal</item>
Tipis-italic :
<item name="android:fontFamily">sans-serif-thin</item>
<item name="android:textStyle">italic</item>
Kental reguler:
<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">normal</item>
Kental italic:
<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">italic</item>
Condensed bold:
<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">bold</item>
Condensed bold-italic:
<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">bold|italic</item>
Sedang:
<item name="android:fontFamily">sans-serif-medium</item>
<item name="android:textStyle">normal</item>
Medium italic:
<item name="android:fontFamily">sans-serif-medium</item>
<item name="android:textStyle">italic</item>
Hitam:
<item name="android:fontFamily">sans-serif-black</item>
<item name="android:textStyle">italic</item>
Untuk referensi cepat, ini adalah bagaimana mereka semua terlihat seperti:
The Material Desain Tipografi halaman demo untuk beberapa font ini dan saran-saran dalam memilih font dan gaya.
Untuk kode detektif: fonts.xml
adalah definitif dan terus memperluas daftar Android font.
Mengatur android:fontFamily
dan android:textStyle
atribut, misalnya
<!-- Roboto Bold -->
<TextView
android:fontFamily="sans-serif"
android:textStyle="bold" />
untuk nilai-nilai yang diinginkan dari tabel ini:
Font | android:fontFamily | android:textStyle
-------------------------|-----------------------------|-------------------
Roboto Thin | sans-serif-thin |
Roboto Light | sans-serif-light |
Roboto Regular | sans-serif |
Roboto Bold | sans-serif | bold
Roboto Medium | sans-serif-medium |
Roboto Black | sans-serif-black |
Roboto Condensed Light | sans-serif-condensed-light |
Roboto Condensed Regular | sans-serif-condensed |
Roboto Condensed Medium | sans-serif-condensed-medium |
Roboto Condensed Bold | sans-serif-condensed | bold
Noto Serif | serif |
Noto Serif Bold | serif | bold
Droid Sans Mono | monospace |
Cutive Mono | serif-monospace |
Coming Soon | casual |
Dancing Script | cursive |
Dancing Script Bold | cursive | bold
Carrois Gothic SC | sans-serif-smallcaps |
(Noto Sans font fallback; anda dapat't menentukan secara langsung)
Note: tabel ini berasal dari fonts.xml
. Masing-masing jenis huruf's nama keluarga dan gaya tercantum dalam fonts.xml, misalnya
<family name="serif-monospace">
<font weight="400" style="normal">CutiveMono.ttf</font>
</family>
serif-monospace
dengan demikian adalah font keluarga, dan normal
adalah gaya.
Berdasarkan log fonts.xml dan mantan system_fonts.xml, yang dapat anda lihat ketika setiap huruf telah ditambahkan:
Sejauh yang saya'm sadar, anda bisa't menyatakan font kustom dalam xml atau tema. Saya biasanya hanya membuat kustom kelas memperpanjang textview yang mengatur sendiri jenis huruf pada instansiasi dan menggunakan mereka dalam tata letak file xml.
yaitu:
public class Museo500TextView extends TextView {
public Museo500TextView(Context context, AttributeSet attrs) {
super(context, attrs);
this.setTypeface(Typeface.createFromAsset(context.getAssets(), "path/to/font.ttf"));
}
}
dan
<my.package.views.Museo900TextView
android:id="@+id/dialog_error_text_header"
android:layout_width="190dp"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textSize="12sp" />