Question

Im trying to use a custom font, and I've read that I suppose to place the fonts in assets/fonts. I'm using Android Studio and it doesn't seem like I have a assets folder. So I created one. But my app crashes when I place the assets folder in src/main. Im using this code to load my fonts.

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

myDeviceModelTxt.setTypeface(fontRegular);

What am I doing wrong?

Was it helpful?

Solution

I am not sure if there has been any bug fixes since this was asked, but I am using the current structure for a project in Android Studio 0.5.2:

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

And then obtain it by calling

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

Word of caution though, there is a bug (https://code.google.com/p/android/issues/detail?id=9904) that prevents typefaces from being garbage collected properly. Use a singleton!

OTHER TIPS

Create Assets folder Right click on app->>new->>Folder->>AssetsFolder like below image

enter image description here

Put your font inside this folder by just copy and paste. and use below code for example..

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

Simply follow this path:

File > New > folder > assets Folder

Here App must be selected before creating folder.

For more information see this answer

The assets folder should be placed under the root of the project. See here for more examples.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top