zoukankan      html  css  js  c++  java
  • android中改变字体

    废话不多说直接上思路和代码。

    1.在Assets中创建一个fonts文件夹并将字体文件放入该文件夹中。

    2.代码对textview操作。

    textview.setTypeface(Typeface.createFromAsset(mContext.getAssets(), "你Assets中的字体文件"));

    以上代码就可以实现自定义字体的实现。

    字体文件不可用的原因和解决办法。

    1.Assets文件大小限制。

    Android Asset Packaging Tool(aapt)使用这个工具可打包所有数据 Image XML文件 任何资源文件.在生成APK时aapt选择性的压缩各种资源来节省设备空间,aapt使用后缀来决定哪个资源需要压缩,aapt源码定义一些不需要压缩的文件后缀。

    /* these formats are already compressed, or don't compress well */
    static const char* kNoCompressExt[] = {
        ".jpg", ".jpeg", ".png", ".gif",
        ".wav", ".mp2", ".mp3", ".ogg", ".aac",
        ".mpg", ".mpeg", ".mid", ".midi", ".smf", ".jet",
        ".rtttl", ".imy", ".xmf", ".mp4", ".m4a",
        ".m4v", ".3gp", ".3gpp", ".3g2", ".3gpp2",
        ".amr", ".awb", ".wma", ".wmv"

    };

    在Android 2.3以前的任何压缩的资源的原始大小超过1M将不能从APK中读出,如果你使用AssetManager 或 Resources classes方法来获取InputStream,将抛出java.io.IOException的异常如下     DEBUG/asset(1123): Data exceeds UNCOMPRESS_DATA_MAX (20078432 vs 1048576);
    可以看到如果需要打包数据库文件过大就需要注意了。

    2.解决方法如下:

    1.将你的资源文件后缀改成上面列出的后缀。
    2.在命令行上使用-0参数来指定不需要压缩的文件后缀。当你使用Eclipse内的ADT目前还不知道有什么方法可以传递-0参数给aapt。
    3.将你的资源文件分割成UNCOMPRESS_DATA_MAX(1M)以下的文件.

    小弟把字体自定义和Assets文件大小限制放在一起了,如有抄袭,敬请见谅。

    注明:QQ技术交流群:108614806   感兴趣的加一下。



     

  • 相关阅读:
    用于创建和管理 Azure 虚拟机的常用 PowerShell 命令
    在 Azure Resource Manager 中为虚拟机设置密钥保管库
    使用 Azure 资源管理器向 Windows VM 应用策略
    Azure 门户中基于角色的访问控制入门
    为 Azure Resource Manager 中的虚拟机设置 WinRM 访问权限
    如何加密 Windows VM 上的虚拟磁盘
    适用于 Windows VM 的 Azure 示例基础结构演练
    Azure 中虚拟机的备份和还原选项
    1.1 基本算法和记号
    tomcat的class加载的优先顺序
  • 原文地址:https://www.cnblogs.com/zhiqiangsimida/p/2774681.html
Copyright © 2011-2022 走看看