How To Download Different Fonts For Android
- Custom Fonts For Android
- How To Download Different Fonts For Android Iphone
- Add Fonts To Android Phone
- How To Download Free Fonts For Android
Exploring Downloadable Fonts using Support Library & Android Studio
I recently had the pleasure of using the newly supported Downloadable Fonts feature that was introduced with Android Oreo, when changing Winnie’s font from Roboto to Lato.
Oct 31, 2017 Fonts make or break the look of your phone. To make sure your phone doesn't look awful, let's find out how you can change fonts on your Android without rooting. Here are the steps to install fonts using Font Installer on your Android device. Launch the font Installer and go to the Server tab. There you should see a list of downloadable TTF Font files. You can preview and install any of the Fonts on the list. I was trying to use custom font in Android Studio as we did in Eclipse. Download the various fonts you wanted to add to your project example. Ask Different (Apple).
Along with Fonts in XML, Support Library 26 introduced support for Downloadable Fonts, with backwards compatibility till API 14. Historically, using custom fonts have usually required the use of third-party libraries, so it was nice to see more support from the Android framework itself.
What is Downloadable Fonts, and why use it?
Downloadable Fonts allow the ability for apps to request fonts from a font provider application instead of including font files in the apk or downloading it themselves. A font provider application retrieves fonts and caches them locally so that other apps can request and share fonts. How cool is that!
Google Play Services (on devices with version 11+) is one such font provider, which I used for Lato as it is a Google Font. There isn’t documentation yet on how to implement your own font provider if you were to use a custom font not available through Google Play Services, however you can use fonts in XML which is still an improvement over what it used to be!
As you can see in the image above, apps using Downloadable Fonts make a FontRequest using the FontsContract API which retrieves the Typeface from the Font Provider. The Font Provider does not need to download fonts if it already exists in the Font cache.
Developers don’t need to use these APIs directly if using Downloadable Fonts through XML, which is described more in the next section.
Advantages of using Downloadable Fonts:
- Reduced APK size — which can significantly impact your app installs!
- Since the apps can share fonts from the same provider, this results in less usage of precious memory, disk space and cellular data. Can you guess how many Roboto font files are in your phone’s storage right now? 🙀 (yes there are apps that have them in their APKs).
Great, let’s get started!
There are three ways of implementing Downloadable Fonts in your app — using Android Studio & Google Play services, programmatically or via the Support Library. I used Android Studio to generate the required files, and used the Fonts in XML feature from the Support library to apply the downloaded fonts.
I decided to do it via XML because then you can declare the required fonts in your app’s manifest file, which allows the framework to download them ahead of time. If doing it programmatically, you can only request for fonts after the app is launched, which can cause a delay in the first layout time. Also, it is less work do it via XML!
1. If you want to use Android Studio to generate the required files, then you’ll need version 3.0+. Add the following (version 26+) to your module’s build.gradle:
2. Select a text view in your app that you want to apply the font to and click on the fontFamily attribute under Attributes in the graphical layout.
Custom Fonts For Android
Select the “More Fonts…” at the bottom, which will open the dialog below.
3. Make sure to have “Create downloadable font” selected. This results in three files being downloaded — lato.xml, font_certs.xml and preloaded_fonts.xml.
lato.xml
This file contains the font attributes for loading a Typeface from the Google Fonts Provider Application.
font_certs.xml
The system uses these certificates to verify the font provider’s identity, to avoid getting fonts from an unknown source. If using the steps above, Android Studio should have automatically generated the string certificates for dev and prod in font_certs.xml below.
preloaded-fonts.xml
This file is referenced in the Android manifest which helps the framework pre-load fonts to avoid delays when the app is launched.
4. Make sure this line is added to your app’s Manifest file, Android Studio should have done this automatically:
5. Great, now you are ready to apply the fonts in XML!
All I had to do was set the font family in the app’s theme to get TextViews throughout the app to change to Lato, including parts that were bold or italicized. However, if you want to configure the weights, you can follow the same steps to get Lato Bold using Android Studio, and change the weight manually in lato_bold.xml that you can then apply in XML layouts:
The whole thing felt like magic! But….
Gotchas
When using Support Library 26, I noticed that the toolbars throughout the app was still in Roboto, resulting in a hideous Roboto-Lato combination! Even explicitly setting the fontFamily of the toolbar in XML didn’t work. This is because Toolbar does not implement the fontFamily property, like a TextView does.
Including the fontFamily in an XML style and setting that to be the toolbar’s app:titleTextAppearance worked — the toolbar titles were now in Lato! Good news is that this seems to be fixed in Support Library 27, so this workaround shouldn’t be needed.
There were a couple of other places where Lato did not get applied — one where I was dynamically creating textviews with bold styling, and the bottom navigation view for which I used a third-party library. I initially thought that this would do the trick:
I used the ResourcesCompat.getFont() method to load the Typeface and set it on both views, and voilà, there was no more Roboto! However, at one point I saw a ResourcesNotFound exception when setting the Typeface for the BottomNavigation using this method.
Essentially, if the font hasn’t been loaded by the time this method is called or the user doesn’t have the required version of Google Play Services, it will throw this exception. The safest way to avoid this is to load the font programmatically, if you are unable to set the style through XML. Here is the official documentation on how to do that.
There is also this crashwithFontsContractCompat in 27.0.2, it has been fixed for a future release of support library and doesn’t seem to be an issue in 26.1.0
Other requirements and limitations worth noting:
- Your compileSDK should be at least SDK 26, and if you want to use Android Studio to generate the font files, it should be version 3.0+. If programmatically or using Fonts in XML to apply Downloadable Fonts, you must use at least Support Library 26.
- Using Google Play Servicesas a font provider works on devices that have version 11 and above, otherwise it uses the default system font.
- As mentioned earlier, you may not be able to use Downloadable Fonts if you’re using a custom font that isn’t available through Google Play Services. You might have to write your own custom FontProvider in this case which doesn’t have documentation yet.
I (surprisingly) enjoyed transitioning our app from Roboto to Lato thanks to Fonts in XML & Downloadable Fonts, hope you enjoy these features too! I’d love to hear from you in the comments or on Twitter, and don’t forget to 👏 the post :).
So you don’t like the default fonts on your Android? Or you have seen a custom font on your friend device!
Well the default Android font, Roboto is not bad, I mean the overall look and size is pretty good but still you’re looking for more fonts.
How To Download Different Fonts For Android Iphone
Don’t worry you can still install plenty of new fonts on your device without having root access. We all know unlike other smartphones OS, Android gives you the ability to customize the complete UI using different apps and launchers.
Add Fonts To Android Phone
Installing a custom font is very easy when you’ve the font .ttf file. This post list the 85 best fonts you can download and install on your device. I will also reveal font apps for Android that makes it a lot easier to install font of your choice. Later, you’ll also find apps that requires root permission but don’t worry if you have have rooted device.
You don’t need to have root access…
By default you can change font or font size from Settings > Display > Font Style. The most common Android device manufacturers including Samsung, HTC, LG and others have added this feature by default.
Using the settings you can easily choose a different font style as well as font size. Default font includes a number of good stylish fonts that can add different look and flavor taste to your phone UI.
Depending on your device you may have different options for changing font but primary option remains the same which is mostly like to found under the Settings > Display or sometimes under Accessibility.
I am using a Samsung Galaxy device and luckily they have added a few extra fonts. You’ll also get an option called, “Get fonts online” by tapping this option, Google Play opens where you can download other fonts.
Go Launcher helps you to install new fonts on Android
Earlier, I mentioned you can install any font using the Android launcher apps. Go launcher, one of the best launcher available on the play store can help you to get your favorite font on the device.
Here is how you can use Go Launcher to install font:
- Download font .ttf file.
- Copy .ttf font files to phone memory.
- Open Google Play and install GO launcher if you haven’t already.
- Launch GO launcher app.
- Select the Tools and tap on the Preferences icon.
- Scroll down to Personalization and browse it.
- Tap on Font.
- Tap Select Font and tap on the font that you want to use.
You can get additional fonts by installing another app GO Launcher Fonts from here. It will give extra 57 fonts that you can install without any issue.
iFont: The best Font Installer for Android
Thousands of free fonts for your Android phone or tablet
iFont is a great app to install stylish looking fonts. The app helps you to download and use hundreds of free fonts on your Android. Now managing fonts has become a lot easier with iFont, where you can easily change to any font any time without any issue.
Here is how to use iFont:
- First go to Settings > Security and enable “Unknown Sources.”
- Download and install iFont from Play store.
- Choose the Online tab.
- Tap on a font name that you want to install and hit download.
- Tap the set button to apply that font to system. You can also go to Settings > Display > Font Style and look for the font name you’ve recently installed.
That’s it! This is how you can change or install a new font on the device.
Finally it’s time for rooted devices…
If you’ve rooted your Android and looking for a best app that can install free fonts on Android then no look further other than FontFix. It is a free app that supports over 4,300 fonts.
Free remote keylogger for android. You can download FontFix from Play Store using this link.
Finally, I hope you enjoyed the post and learn how you can install and change font on Android. If you find it useful, don’t forget to share it.
How To Download Free Fonts For Android
Thanks for reading.