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