상세 컨텐츠

본문 제목

Download Amazing Fonts For Android

카테고리 없음

by bistuxyssurdera 2021. 1. 8. 20:58

본문



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.

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!

Jul 24, 2017 Fonts - Letters for Whatsapp is an application designed to send personalized messages to your contacts in Whatsapp, you can also find amazing styles of letters to publish them on Facebook. ★★Main features★★ 1.Support Samsung phones(via Galaxy S3,S4,S5,Note,Note Ⅱ,Note Ⅲ ) to change font perfectly (No root needed) 2.Support HTC, Motorola, Lenovo, Huawei, Nokia and other phones to change font (Root needed:The name root is the user name or account that by default has access to all commands and files on the Android. The best website for free high-quality Amazing fonts, with 28 free Amazing fonts for immediate download, and 43 professional Amazing fonts for the best price on the Web.

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!

Download Amazing Fonts For Android

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: Download memo pad for android apk.

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.

Download

Select the “More Fonts…” at the bottom, which will open the dialog below.

Free Font Apps For Android

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!

Amazing Fonts

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:

https://cunitali.tistory.com/10. 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.

Download Amazing Fonts For Android Pc

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 Download bluestack for android phone.

The walking dead full game download for android. 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.

Download Amazing Fonts For Android App

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 :).