Pertanyaan saya cukup sederhana:
Di setiap textview saya, saya saat ini menggunakan atribut
android:fontFamily="sans-serif-light"
untuk memberikan tampilan cantik pada perangkat pasca HC.
Sayangnya, ini tidak berfungsi dengan setiap widget dan untuk Pemintal saya, saya perlu menimpa Adaptor.
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//You can use the new tf here.
if(convertView == null || convertView.getTag() == null) {
// new view - populate
convertView = inflater.inflate(android.R.layout.simple_spinner_dropdown_item, parent, false);
convertView.setTag(new Object());
}
CheckedTextView spinner_text=(CheckedTextView) convertView.findViewById(android.R.id.text1);
//Typeface should be set here...
return spinner_text;
}
}
Jadi, adakah cara untuk mendapatkan hasil yang persis sama dengan kode?
PS: Tidak, saya tidak mau meletakkan jenis huruf di folder aset, saya hanya ingin menggunakan sistem satu.
Jika Anda menggunakan res -> folder font, Anda dapat menggunakan seperti ini
sumber
Menurut saya, masih ada cara untuk menerapkan font sistem secara programatik pada TextView tanpa masalah memori dan itu menggunakan
textview.setTextAppearance
metode:sumber
android:fontFamily
membutuhkan API 16.TextViewCompat.setTextAppearance(textView, R.style.styleA)
.Secara dinamis Anda dapat menyetel fontfamily mirip dengan android: fontFamily di xml dengan menggunakan ini,
Ini adalah daftar keluarga fonta default yang digunakan, gunakan salah satu dari ini dengan mengganti string kutipan ganda "sans-serif-medium"
"mycustomfont.ttf" adalah file ttf. Path akan berada di src / assets / fonts / mycustomfont.ttf , Anda dapat merujuk lebih lanjut tentang font default di keluarga font default ini
sumber
Opsi 1 - API 26 dan lebih tinggi
Opsi 2 - API 16 dan lebih tinggi
Periksa penebusan penuh di Panduan Pengembang Android .
sumber
Itu dimungkinkan dengan menggunakan
setTypeface(Typeface tf, int style)
metodeTextView
kelas.spinner_text.setTypeface(Typeface.SANS_SERIF,Typeface.NORMAL);
sumber