如果我想在我的应用程序中嵌入自定义字体,我必须至少以某种方式保护它们,因为许可证需要这样做。所以我不能做类似的事情
Typeface.createFromAsset(getAssets(),"fonts/myAwesomeFont.ttf");
在 iOS 上,使用这种方法可以动态解密字体并使其在应用程序中可用。Android上是否有类似的方法?
我的直觉是使用一个单例类来处理原始资源文件的解密,并在我在视图上的代码中设置它时按需返回字体。有没有我错过的更好的方法?*这甚至可能吗?*
如果我想在我的应用程序中嵌入自定义字体,我必须至少以某种方式保护它们,因为许可证需要这样做。所以我不能做类似的事情
Typeface.createFromAsset(getAssets(),"fonts/myAwesomeFont.ttf");
在 iOS 上,使用这种方法可以动态解密字体并使其在应用程序中可用。Android上是否有类似的方法?
我的直觉是使用一个单例类来处理原始资源文件的解密,并在我在视图上的代码中设置它时按需返回字体。有没有我错过的更好的方法?*这甚至可能吗?*
Android上是否有类似的方法?
并不真地。
我的预感是使用一个单例类来处理原始资源文件的解密,并在我在视图上的代码中设置它时按需返回字体
这是不可能的,因为您无法Typeface从某个字节数组或流中创建一个。
欢迎您解密字体文件并将其存储在本地未加密,然后使用它。这是否足以满足您的许可条款是您的律师的问题。
你可以做一件事...
使用文件 I/O 流加密您的原始字体文件并将加密文件保存在资产中。并在安装您的应用程序
后,使用以下方式获取加密文件
getAssets().open(fileName);
并第一次解密流并将解密文件(原始字体文件)存储在您的 Appication 私有路径中。并在每次需要时使用此文件创建字体...使用
Typeface.createFromFile(File);
所以您的 APK 将包含加密文件...