2013-10-07 16 views
24

Sto cercando di usare un font personalizzato, e ho letto che suppongo di posizionare i font in assets/fonts. Sto utilizzando Android Studio e non sembra che abbia una cartella di risorse. Così ne ho creato uno. Ma la mia app si blocca quando inserisco la cartella delle risorse in src/main. Sto usando questo codice per caricare i miei caratteri.Cartella delle risorse in Android Studio?

Typeface fontRegular = Typeface.createFromAsset(getAssets(), "fonts/DroidSans.ttf"); 
Typeface fontBold = Typeface.createFromAsset(getAssets(), "fonts/DroidSans-Bold.ttf"); 

myDeviceModelTxt.setTypeface(fontRegular); 

Cosa sto sbagliando?

+2

io continuo il mio in progetto/modulo/src/main/attività/font – hoss

+0

possibile duplicato di [Dove posizionare cartella Assets in Android Studio] (http: // StackOverflow. it/questions/18302603/where-to-place-assets-folder-in-android-studio) – Prince

+0

Vedere questo http://stackoverflow.com/a/35865160/3496570 – Nepster

risposta

53

Non sono sicuro se c'è stata qualche bug fix dal momento che questo è stato chiesto, ma io sto usando la struttura attuale per un progetto in Android 0.5.2 Studio:

root-module 
|--.idea 
|--app 
|----build 
|----src 
|------main 
|--------assets 
|----------SomeFont.ttc 
|----------AnotherFont.otf 
|--------java 
|----------source code here 
|--------res 
|------AndroidManifest.xml 
|----build.gradle 

E poi ottenerlo chiamando

Typeface.createFromAsset(mContext.getResources().getAssets(), "SomeFont.ttc"); 

Parola di cautela, però, c'è un bug (https://code.google.com/p/android/issues/detail?id=9904) che impedisce caratteri di essere garbage collection in modo corretto. Usa un singleton!

-1

La cartella delle risorse deve essere posizionata nella radice del progetto. Vedere here per ulteriori esempi.

+2

Non secondo questo post http://stackoverflow.com/questions/18302603/where-to-place-assets-folder-in-android-studio – Jojo

+1

Strano. Devo controllare questa roba. O Google ha migliorato getAssets per cercare sia nella radice che sotto src/main o il post che hai dato manca qualcosa. Controllerò e aggiornerò. –

+1

@LiorOhana questo post sembra fare riferimento a eclissi, non ad Android Studio – pconcepcion

0

Basta seguire questo percorso:

File > New > folder > assets Folder 

Qui App deve essere selezionato prima di creare la cartella.

Per ulteriori informazioni consultare this answer

12

creare asset cartelle, fare clic destro su App - >> nuova - >> Folder - >> AssetsFolder come sotto immagine

enter image description here

Metti la tua carattere all'interno di questa cartella basta copiare e incollare. e utilizzare il codice qui sotto per esempio ..

Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "YourFontName.ttf"); 
setTypeface(tf); 
+0

Questo è il corretto anwser – allemattio

Problemi correlati