Stavo cercando di utilizzare caratteri personalizzati in Android Studio come abbiamo fatto in Eclipse. Ma sfortunatamente non sono riuscito a capire dove mettere la cartella "risorse"!
Stavo cercando di utilizzare caratteri personalizzati in Android Studio come abbiamo fatto in Eclipse. Ma sfortunatamente non sono riuscito a capire dove mettere la cartella "risorse"!
Risposte:
Aggiornamento 2020:
Crea una cartella denominata font all'interno della cartella res e copia il font
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/abc_font" />
Per uso programmatico:
textView.setTypeface(ResourcesCompat.getFont(context, R.font.abc_font))
Seleziona File> Nuovo> Cartella> Cartella risorse
Fai clic su Fine
Fare clic con il tasto destro del mouse sulle risorse e creare una cartella denominata font
Inserisci il tuo file di caratteri in risorse > caratteri
Usa il codice qui sotto per cambiare il carattere di textView
TextView textView = (TextView) findViewById(R.id.textView);
Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/yourfont.ttf");
textView.setTypeface(typeface);
Esistono molti modi per impostare la famiglia di caratteri personalizzati sul campo e sto usando come quello di seguito.
Per aggiungere caratteri come risorse, procedi come segue in Android Studio:
1) Fai clic con il pulsante destro del mouse sulla cartella res e vai su Nuovo> Directory risorse Android. Viene visualizzata la finestra Nuova directory delle risorse.
2) Nell'elenco Tipo di risorsa, selezionare il carattere e quindi fare clic su OK.
Nota: il nome della directory delle risorse deve essere font.
3) Aggiungi i tuoi file di font nella cartella dei font.
Aggiungi il carattere nella vista desiderata nel tuo file xml:
Nota: ma hai richiesto le seguenti cose per quello:
Android Studio sopra al canarino 3.0.
La tua attività estende AppCompatActivity.
Aggiorna il tuo file Gradle in questo modo:
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
minSdkVersion 19
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildtoolsVersion
sopra a 26 e minimo targetSdkVersion
richiesto 26
classpath 'com.android.tools.build:gradle:3.0.0-beta4'
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
Penso che invece di scaricare il file .ttf possiamo usare i caratteri di Google. È molto facile da implementare. solo tu devi seguire questi passaggi. passaggio 1) Aprire layout.xml del progetto e selezionare la famiglia di caratteri della vista testo negli attributi (per lo screenshot di riferimento allegato)
passaggio 2) La famiglia di caratteri selezionare l'opzione Altri caratteri .. se il carattere non è presente. quindi vedrai aprirsi una nuova finestra, lì puoi digitare il carattere richiesto e selezionare il carattere desiderato da quell'elenco, ad esempio) normale, grassetto, corsivo ecc., come mostrato nell'immagine qui sotto.
passo 3) Quindi osserverai che una cartella di caratteri verrà generata automaticamente nella cartella / res con il tuo file xml di caratteri selezionato.
Quindi puoi utilizzare direttamente questa famiglia di caratteri in xml come
android:fontFamily="@font/josefin_sans_bold"
o dal punto di vista grammaticale puoi farlo usando
Typeface typeface = ResourcesCompat.getFont(this, R.font.app_font);
fontText.setTypeface(typeface);
Ciao qui abbiamo un modo migliore per applicare i caratteri su EditTexts e TextViews su Android contemporaneamente e applicarlo in tutto il progetto.
Prima di tutto devi creare la cartella dei caratteri. Ecco i passaggi.
1: vai su (cartella progetto) Quindi app> src> main
2: Crea cartelle denominate 'risorse / caratteri' nella cartella principale.
3: inserisci i tuoi caratteri nella cartella dei caratteri. Qui ho "MavenPro-Regular.ttf"
Ecco i passaggi per l'applicazione di caratteri personalizzati su EditText e utilizzando questo approccio è possibile applicare caratteri su ogni input.
1: Crea una classe MyEditText (il tuo nome preferito ...)
2: che estende EditText
3: applica il tuo carattere
Ecco un esempio di codice;
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);
}
}
}
E in Ecco il codice come usarlo.
MyEditText editText = (MyEditText) findViewById(R.id.editText);
editText.setText("Hello");
O nel tuo file 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"
/>
Con Support Library 26.0 (e Android O) i caratteri possono essere caricati facilmente dalle risorse con:
Typeface typeface = ResourcesCompat.getFont(Context context, int fontResourceId)
Maggiori informazioni possono essere trovate qui.
Voglio aggiungere la mia risposta per Android-O e Android Studio 2.4
Crea una cartella chiamata font nella cartella res . Scarica i vari tipi di carattere che desideri aggiungere al tuo esempio di progetto . Caratteri Google
All'interno della famiglia di caratteri utente XML
esempio :
<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.Se vuoi che sia programmatico, usa il seguente codice
Typeface typeface = getResources().getFont(R.font.indie_flower);
textView.setTypeface(typeface);
per maggiori informazioni segui il link al mio post sul blog Stili di carattere per Android con Android Studio 2.4
Come da nuova funzionalità disponibile in Android O, risorse di font in XML sono disponibili come nuove funzionalità.
Per aggiungere caratteri come risorse, procedi come segue in Android Studio:
1) Fai clic con il pulsante destro del mouse sulla cartella res e vai su Nuovo> Directory risorse Android . Viene visualizzata la finestra Nuova directory delle risorse.
2) Nell'elenco Tipo di risorsa, selezionare il carattere e quindi fare clic su OK.
Nota: il nome della directory delle risorse deve essere font.
3) Aggiungi i tuoi file di font nella cartella dei font.
Puoi accedere alle risorse dei font con l'aiuto di un nuovo tipo di risorsa, font. Ad esempio, per accedere a una risorsa di font, utilizzare @ font / myfont o R.font.myfont.
per esempio. Typeface typeface = getResources().getFont(R.font.myfont);
textView.setTypeface(typeface);
Puoi utilizzare la libreria di terze parti EasyFonts facile e semplice per impostare una varietà di font personalizzati per il tuoTextView
. Usando questa libreria non dovresti preoccuparti di scaricare e aggiungere caratteri nella cartella risorse / caratteri. Anche sulla creazione di oggetti Typeface. Sarai libero di creare anche la cartella delle risorse.
Semplicemente:
TextView myTextView = (TextView)findViewById(R.id.myTextView);
myTextView.setTypeface(EasyFonts.robotoThin(this));
Esistono molti tipi di caratteri forniti da questa libreria.
1 ° aggiungi il file font.ttf nella cartella dei caratteri. Quindi aggiungere questa riga nel metodo onCreate
Typeface typeface = ResourcesCompat.getFont(getApplicationContext(), R.font.myfont);
mytextView.setTypeface(typeface);
Ed ecco il mio 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"
/>
Per assegnare il carattere a textView:
TextView textView = (TextView) findViewById(R.id.your_textView);
final Typeface font = Typeface.createFromAsset(context.getAssets(), "fonts/your_font_name");
your_font_name include l'estensione del carattere.
Se sei molto nuovo su Android come me, questo può essere un po 'complicato. Assicurati di chiamare:
TextView myTextView = (TextView) findViewById(R.id.textView);
Typeface typeface=Typeface.createFromAsset(getAssets(), "fonts/your font.ttf");
myTextView.setTypeface(typeface);
metodo all'interno di un metodo come onCreate
.
Android 8.0 (API 26) ha introdotto nuove funzionalità relative ai caratteri.
1) I caratteri possono essere usati come risorse.
2) Font scaricabili.
Se si desidera utilizzare caratteri esterni nell'applicazione Android, è possibile includere file di caratteri in apk o configurare caratteri scaricabili.
Compresi file di caratteri in APK : è possibile scaricare file di caratteri, salvarli in filer res / font, definire la famiglia di caratteri e utilizzare la famiglia di caratteri negli stili.
Per maggiori dettagli sull'uso di caratteri personalizzati come risorse, consultare http://www.zoftino.com/android-using-custom-fonts
Configurazione dei caratteri scaricabili : definire il carattere fornendo i dettagli del fornitore del carattere, aggiungere il certificato del fornitore del carattere e utilizzare il carattere negli stili.
Per ulteriori dettagli sui caratteri scaricabili, consultare http://www.zoftino.com/downloading-fonts-android
Prima crea una assets
cartella, quindi crea una fonts
cartella al suo interno.
Quindi puoi impostare font
da assets
o directory
come il seguente:
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);
}
}
}
Ora ci sono molti modi per applicare il carattere uno dei modi più semplici è come questo, 1) Fare clic con il tasto destro del mouse sulla cartella res e andare su Nuovo> Directory delle risorse Android.
2) Dall'elenco Tipo di risorsa, selezionare il carattere, quindi fare clic su OK.
3) Inserisci i tuoi file dei caratteri nella cartella dei caratteri.
Aggiungi i tuoi caratteri alla cartella delle risorse in app / src / main / assets per creare una visualizzazione di testo personalizzata come questa:
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))
}
}
Aggiungi FontCache: in modo da non dover creare più e più volte caratteri tipografici come:
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")
}
}
E il gioco è fatto!
PSDal Android O, puoi aggiungere direttamente i caratteri.
inserisci i caratteri nella cartella delle risorse, quindi applica fontfamily: '' i tuoi caratteri
Per i nuovi lettori
Puoi utilizzare questa libreria Viste dei caratteri personalizzati Gloxey
dipendenza dal grado
dependencies{
compile 'io.gloxey.cfv:custom-font-views:1.0.2'
}
Come usare?
Crea risorse cartella -> caratteri . Copia i tuoi caratteri nella cartella dei caratteri .
Utilizzare l' app per la proprietà : font_name = "font_name_string" per applicare il carattere sulla vista.
Esempio
<!--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" />