Am fost încercarea de a utiliza fontul personalizat în Android Studio cum am făcut-o în Eclipsă. Dar, din păcate, nu a putut da seama în cazul în care pentru a pune 'active' folder!
Aici sunt pașii pentru a rezolva aceasta:
AssetManager sunt = context.getApplicationContext().getAssets();
font = Font.createFromAsset(am, Șir.format(Locale.NOI, "fonturi/%s", "abc.ttf"));
setTypeface(font);
sau incearca in felul urmator:
TextView tx = (TextView)findViewById(R. id.textview1);
Font custom_font = Font.createFromAsset(getAssets(), "fonturi/abc.ttf");
tx.setTypeface(custom_font);
Selectați Fișier>Nou>Dosar>Dosar Active
Faceți clic pe termin
Faceți clic dreapta pe active și de a crea un folder numit fonturi
Pune-ți fișier de font în active > fonturi
Folosiți codul de mai jos pentru a schimba textView's font
TextView textView = (TextView) findViewById(R. id.textView); Font font = Font.createFromAsset(getAssets(), "fonturi/yourfont.ttf"); textView.setTypeface(font);
Există mai multe moduri de a seta font personalizat familia pe câmp și eu sunt, folosind ca asta de mai jos.
Pentru a adăuga fonturi ca resurse, efectuați următorii pași în Android Studio:
faceți clic Dreapta pe folderul res și du-te la Nou > Android director de resurse. Noul Director de Resurse apare o fereastră.
În Resursa de tip listă, selectați font, apoi faceți clic pe OK.
Notă: numele de director de resurse trebuie să fie fontul.
Adaugă font în vizualizarea dorită în fișier xml:
Notă: Dar necesare următoarele lucruri pentru că:
Android Studio de mai sus pentru a 3.0 canare.
Activitatea se extinde AppCompatActivity.
Actualizați Gradle fișier de genul asta:
compileSdkVersion 26 buildToolsVersion "26.0.1" defaultConfig { minSdkVersion 19 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.sprijin.test.runner.AndroidJUnitRunner" }
buildtoolsVersion
de mai sus pentru 26 și minim `targetSdkVersion necesare 26
classpath 'com.android.instrumente.construi:gradle:3.0.0-beta4'
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
Cred că în loc de a descărca .ttf fișier putem folosi fonturi Google. L's foarte ușor de a pune în aplicare. doar trebuie să urmați acești pași. pasul 1) Deschide layout.xml de proiect și selectați familia de fonturi de text în vedere atributele (de referință ecran shot este atașat)
pasul 2) in familia de fonturi, selectați Mai multe fonturi.. opțiune dacă fontul nu este acolo. apoi, veți vedea o fereastră nouă se va deschide, nu puteți să tastați fontul necesar & selectați fontul dorit din lista aia eu.e) Regular, Bold, Italic etc.. așa cum se arată în imaginea de mai jos.
pasul 3) Atunci veți observa un font folder va fi generat automat în /res dosar având fonturi selectate fișier xml.
Apoi puteți folosi direct acest font familie în xml ca
android:fontFamily="@font/josefin_sans_bold"
sau pro gramatical puteți realiza acest lucru prin utilizarea
Typeface typeface = ResourcesCompat.getFont(this, R.font.app_font);
fontText.setTypeface(typeface);
Salut, aici avem o cale mai bună de a aplica fonturi pe EditTexts și TextViews pe android de la o dată și se aplică în întregul proiect.
Mai întâi de Toate, aveți nevoie pentru a face folderul de fonturi. Aici sunt Pașii.
1: Du-te la (director de proiect), Apoi app>src>principalele
2: Creați foldere nume 'active/fonturi' în folderul principal.
3: Pune-ti fonturi în folderul fonts. Aici Am 'MavenPro-Regular.ttf'
Aici sunt Pașii pentru a aplica fonturi personalizate pe EditText și folosind această abordare, puteți aplica fonturi pe fiecare intrare.
1 : Creați o Clasă MyEditText (numele preferat ...)
2 : care se extinde EditText
3 : Aplicați font
Aici este Exemplu de cod;
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);
}
}
}
Și Aici este codul cum să-l folosească.
MyEditText editText = (MyEditText) findViewById(R.id.editText);
editText.setText("Hello");
Sau în Fișier 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"
/>
Cu Sprijinul Bibliotecii 26.0 (și Android O,) fonturi poate fi încărcat de la resurse cu ușurință cu
Font font= ResourcesCompat.getFont(Context Context, int fontResourceId)
Mai multe informații pot fi găsite aici.]3
Vreau să adăugați răspunsul meu pentru Android-O și Android Studio 2.4
Crea folder numit font în res folder. Descărcați diverse fonturi ai vrut să adăugați la proiect exemplu fonturi Google
În interiorul xml user familia de fonturi
exemplu :
<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.Dacă doriți să fie în mod programatic folosi următorul cod
Typeface typeface = getResources().getFont(R.font.indie_flower);
textView.setTypeface(typeface);
pentru mai multe informații urmați link-ul de la blog-ul meu post stiluri de Font pentru Android cu Android Studio 2.4
Puteți utiliza ușor & simplu EasyFonts terț biblioteca pentru a seta varietate de font personalizat pentru a ta TextView
. Folosind această bibliotecă ar trebui să nu trebuie să vă faceți griji cu privire la descărcarea și adăugarea de fonturi în activele/fonts folder. De asemenea, despre Font obiect de creație. Va fi liber de la crearea activelor folder prea.
Pur și simplu:
TextView myTextView = (TextView)findViewById(R.id.myTextView);
myTextView.setTypeface(EasyFonts.robotoThin(this));
Există multe tipuri de fonturi oferite de această bibliotecă.
Ca pe noi caracteristică disponibilă în Android O, font resurse în XML este disponibilă ca noua facilitate.
Pentru a adăuga fonturi ca resurse, efectuați următorii pași în Android Studio:
faceți clic Dreapta pe res folder și du-te la Nou > Android director de resurse. Noul Director de Resurse apare o fereastră.
În Resursa de tip listă, selectați font, și apoi faceți clic pe OK.
Notă: numele de director de resurse trebuie să fie fontului.
Puteți accesa fontul resurse cu ajutorul unui nou tip de resursă, font. De exemplu, pentru a accesa un font de resurse, utilizarea @font/myfont, sau R. font.myfont.
de exemplu. Font font = getResources().getFont(R. font.myfont); textView.setTypeface(font);
Pentru a atribui fontul la textView:
TextView textView = (TextView) findViewById(R.id.your_textView);
final Typeface font = Typeface.createFromAsset(context.getAssets(), "fonts/your_font_name");
your_font_name include font extensie.
1 se adaugă font.ttf fișier de pe font Folder. Apoi Adăugați această linie în metoda onCreate
Typeface typeface = ResourcesCompat.getFont(getApplicationContext(), R.font.myfont);
mytextView.setTypeface(typeface);
Și aici este meu 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"
/>
Dacă sunteți foarte nou pentru Android ca eu sunt acest lucru poate fi un pic dificil. Asigurați-vă că sunați:
TextView myTextView = (TextView) findViewById(R.id.textView);
Typeface typeface=Typeface.createFromAsset(getAssets(), "fonts/your font.ttf");
myTextView.setTypeface(typeface);
metoda într-o metodă cum ar fi onCreate
.
Mozilla 8.0 (API 26) a introdus noi caracteristici legate de fonturi.
Fonturi pot fi folosite ca resurse.
Downloadable fonturi.
Dacă doriți să utilizați fonturi externe în aplicația android, puteți să includeți fișiere de font în apk sau de configurare fonturi descărcabile.
Inclusiv fișiere de font în APK : puteți descărca fontul fișiere, salvați-le în res/font filer, pentru a defini familia de fonturi și de a folosi font de familie în stiluri.
Pentru mai multe detalii privind utilizarea fonturi personalizate ca resurse vedea http://www.zoftino.com/android-using-custom-fonts
Configurarea fonturi descărcabile : Definirea fontului prin furnizarea de font furnizor de detalii, adauga font furnizor certificat și de a folosi fontul în stiluri.
Pentru mai multe detalii despre fonturi descărcabile vedea http://www.zoftino.com/downloading-fonts-android
În primul rând a crea dosar "active" de a crea apoi "fonturi" folder în ea.
Apoi, puteți seta "font" de la "active" sau "director" ca mai jos :
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);
}
}
}
Acum există atât de multe moduri de a aplica fontul unul dintre cel mai simplu mod este ca aceasta,
faceți clic Dreapta pe folderul res du-te la Nou > Android director de resurse.
De Resursă de tip listă, selectați font, apoi faceți clic pe OK.
Pune-ti fișiere de font la font folder.
Adăugați fonturi pentru a active folder în app/src/main/active face un custom textview astfel :
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))
}
}
Adaugă FontCache : Astfel încât tu nu't au pentru a crea font din nou și din nou, cum ar fi :
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 ați terminat !
P. S. De la android, puteți adăuga direct fonturi.
Pentru noi cititori
Puteți utiliza această bibliotecă Gloxey Font Personalizat Vedere
gradle dependență
dependencies{
compile 'io.gloxey.cfv:custom-font-views:1.0.2'
}
Cum să utilizați?
Crearea folder active -> fonturi. Copia fonturile în fonturi folder.
Utilizarea proprietate app : font_name = "font_name_string" pentru a aplica fontul la vedere.
Exemplu
<!--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" />