精华内容
下载资源
问答
  • Android字体

    万次阅读 2011-06-03 15:19:00
    Android字体简介 Android系统默认支持三种字体,分别为:“sans”,“serif”,“monospace”。 android.graphic.typeface字体类: 本类的常量静态定义,首先为字体类型(typeface)名称 TypefaceDEFAULT ...

    Android字体简介

    Android系统默认支持三种字体,分别为:“sans”,“serif”,“monospace”。

    android.graphic.typeface字体类:

    本类的常量静态定义,首先为字体类型(typeface)名称
    TypefaceDEFAULT
    Typeface DEFAULT_BOLD
    Typeface MONOSPACE
    TypefaceSANS_SERIF
    Typeface SERIF
    字体风格(style)名称
    intBOLD
    int BOLD_ITALIC
    int ITALIC
    int NORMAL

    设置TextView的字体可以通过TextView中的setTypeface方法来指定一个Typeface对象,因为Android的字体类

    比较简单,我们列出所有成员方法:

    • staticTypeface create(Typeface family, int style)//静态方法,参数一为字体类型这里是Typeface的静态定义,如宋体,参数二风格,如粗体,斜体

    • staticTypeface create(String familyName, int style)//静态方法,参数一为字体名的字符串,参数二为风格同上,这里我们推荐使用上面的方法。

    • staticTypeface createFromAsset(AssetManager mgr, String path)//静态方法,参数一为AssetManager对象,主要用于从APK的assets文件夹中取出字体,参数二为相对于Android工程下的assets文件夹中的外挂字体文件的路径。

    • staticTypeface createFromFile(File path)//静态方法,从文件系统构造一个字体,这里参数可以是sdcard中的某个字体文件

    • staticTypeface createFromFile(String path) //静态方法,从指定路径中构造字体

    • staticTypeface defaultFromStyle(int style) //静态方法,返回默认的字体风格

    • intgetStyle() //获取当前字体风格

    • finalboolean isBold() //判断当前是否为粗体

    • finalboolean isItalic() //判断当前风格是否为斜体

    例程:

    1http://blog.csdn.net/wonderful19891024/archive/2010/11/24/6033304.aspx

    2http://www.eoeandroid.com/thread-536-1-1.html


    Android字体工作原理

        android字体由android 2D图形引擎skia实现,并在Zygote的Preloading classes中对系统字体进行load。相关
    
    文件有:skTypeface.cpp和skFontHost_android.cpp,其中后者是skia针对android平台字体实现的port。主要的
    
    变量有:
    
    struct FontInitRec {
    
    const char*         fFileName;
    
    const char* const*  fNames;     // null-terminated list
    
    };
    
    struct FamilyRec {
    
    FamilyRec*  fNext;
    
    SkTypeface* fFaces[5];
    
    };
    
    uint32_t gFallbackFonts[SK_ARRAY_COUNT(gSystemFonts)+1];
    
    
    
    load_system_fonts()@skFontHost_android.cpp load系统中所有的字体并给每种字体分配唯一的ID,
    
    并将字体分为两种:FamilyFonts和FallbackFonts,skPaint通过应用程序设置的字体(Typeface)所
    
    对应的ID最终实现字符的显示。
    
    
    

    替换Android默认的汉字字体

        在android系统中,DroidSans是默认字体,只包含西方字符,应用程序默认情况下都会调用它,而
    
    DroidSansFallback包含了东亚字符,当需要显示的字符在DroidSans字体中不存在(如:汉字)时,即
    
    没有对应编码的字符时,系统会到DroidSansFallback中去找相应编码的字符,如果找到,则使用
    
    DroidSansFallback字体来显示它,如果仍找不到该编码对应的字符,则无法在屏幕上显示该字符。更换
    
    默认中文字体的步骤为:
    
    

    1)将幼圆字体库youyuan.ttf重命名为DroidSansFallback.ttf,覆盖Android源码中frameworks/base/data/fonts目录下的DroidSansFallback.ttf文件;

    2)重新编译Android系统;

    3)编译SDK。生成的SDK中,android默认的中文字体已更换为幼圆字体。该方法的不足是删除了Android系统原来的中文字体。


    为android系统添加一种默认字体,类似“sans”,“serif”,“monospace”

        在android系统中,默认的中文字体只有一种:DroidSansFallback.ttf,如果想在android应用程序中随意设
    
    置想要的中文字体,除了在应用程序中通过assets目录引入字体文件外,还可以通过增加android默认字体
    
    的方式来实现。添加步骤大致如下:
    
    1)在frameworks/base/data/fonts目录下添加字体文件,例如Driod-kaishu.ttf;
    
    2)在skia中增加楷书这一字体,需要修改的文件主要有skFontHost.cpp、skTypeface.cpp、Typeface.java等;
    
    3)在java层添加楷书字体相关API,需要修改的文件主要有typeface.java和textview.java;
    
    4)编译SDK5)将新生成的sdk导入eclipse,在eclipse中即可通过setTypeface(Typeface.KAISHU)和
    
    android:typeface=(“kaishu”)两种方式设置自己添加的字体。
    
    以增加楷书字体为例:
    
    ==========main.xml=====================
    
    
    

    <?xmlversion="1.0"encoding="utf-8"?>

    <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:background="#f3243646"

    >

    <TextView

    android:id="@+id/TextView1"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:text="@string/normal"

    android:typeface="normal"

    android:textSize="25px"

    />

    <TextView

    android:id="@+id/TextView2"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:text="@string/sans"

    android:typeface="sans"

    android:textSize="25px"

    />

    <TextView

    android:id="@+id/TextView3"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:text="@string/serif"

    android:typeface="serif"

    android:textSize="25px"

    />

    <TextView

    android:id="@+id/TextView4"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:text="@string/monospace"

    android:typeface="monospace"

    android:textSize="25px"

    />

    <TextView

    android:id="@+id/TextView5"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:text="@string/kaishu"

    android:typeface="kaishu"

    android:textSize="25px"

    />

    </LinearLayout>

    ==============String.xml=====================
    
    

    <?xmlversion="1.0"encoding="utf-8"?>

    <resources>

    <stringname="normal">(normal)字体测试!!!TypefacesTest!!!</string>

    <stringname="app_name">Typefaces4</string>

    <stringname="kaishu">(kaishu)字体测试!!!TypefacesTest!!!</string>

    <stringname="sans">(sans)字体测试!!!TypefacesTest!!!</string>

    <stringname="serif">(serif)字体测试!!!TypefacesTest!!!</string>

    <stringname="monospace">(monospace)字体测试!!!TypefacesTest!!!</string>

    </resources>

    ==============Typefaces4.java=====================
    
    

    packagecom.cy.Typefaces4;


    importandroid.app.Activity;

    importandroid.os.Bundle;

    importandroid.widget.TextView;


    publicclassTypefaces4 extendsActivity{

    /**Called when the activity is first created. */

    @Override

    publicvoidonCreate(BundlesavedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    }

    }

    结果图如下:


    需要注意的是,在一个TextView里的所有字符只能设置成一种字体,比如说textview.settext(“字体测试!!!TypefacesTest!!!”)中的所有字符只能被设置成同一种字体,如果想将“字体测试!!!”设置为楷书,而“TypefacesTest!!!”设置为sans就必须将这两段字符用两个TextView显示,并对各自的字体分别进行设置。

    ==============main.xml=============

    <?xmlversion="1.0"encoding="utf-8"?>

    <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="horizontal"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:background="#ffffffff"

    >

    <TextView

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="@string/kaishu"

    android:textSize="30px"

    android:textColor="#ff000000"

    android:typeface="kaishu"

    />

    <TextView

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="@string/sans"

    android:textSize="30px"

    android:textColor="#ff000000"

    android:typeface="sans"

    />

    </LinearLayout>

    效果图如下:


    
    





     

    展开全文
  • android 字体

    2014-08-31 09:19:53
    key_letter_ratio // 全键盘字母字体大小 key_large_letter_ratio // 数字键盘前的数字字体大小 key_label_ratio // 全键盘第四行?123,done,= key_large_label_ratio // 数字键盘的next键字符字体大小 ke

    在android_4.1\packages\inputmethods\LatinIME下为android原生键盘的英文输入法文件夹

    修改LatinIME内的dimens.xm中下面的key调整为下面的值(值越小,字越小)

    key_letter_ratio // 全键盘字母字体大小
    key_large_letter_ratio // 数字键盘前的数字字体大小
    key_label_ratio // 全键盘第四行?123,done,=<键的字符字体大小
    key_large_label_ratio // 数字键盘的next键字符字体大小
    key_hint_letter_ratio// 全键盘第一行上面的数字的字体大小

    key_hint_label_ratio// 数字键盘后面的abc等label的字体大小 


    ttf


    /system/fonts/ 其中的ttf文件都是字库 对于源码/frameworks/data/fonts/下的字体文件

    DroidSans-Bold.ttf 粗体的无衬线字体(拉丁字母等)

    DroidSans.ttf 常规的无衬线字体(拉丁字母等)

    DroidSansFallback.ttf 常规的无衬线字体(中文字符等,一般换字库就是替换此文件)

    DroidSansMono.ttf 等宽的无衬线字体(拉丁字母等)

    DroidSerif-Bold.ttf 粗体的衬线字体(拉丁字母等)

    DroidSerif-BoldItalic.ttf 粗体+斜体的衬线字体(拉丁字母等)

    DroidSerif-Italic.ttf 斜体的衬线字体(拉丁字母等)

    DroidSerif-Regular.ttf 常规的衬线字体(拉丁字母等)

    Clockopia.ttf (显示数字时钟时用的字体,非必须)

    frameworks/fonts/下有三个xml文件,分别是fallback_fonts.xmlsystem_fonts.xmlvendor_fonts.xml,最终被编进系统的是前面两个。


    修改Settings源码可修改系统设置项,Settings数据被存放于com.android.providers.settings/databases/settings.db 中,如果想修改系统启动后加载的默认值

    一种方法是直接修改settings.db的值

    另一种就是修改SettingsProvider默认值

    Settings应用能够配置Android系统的各种设置,这些设置的默认值都是由frameworks中的SettingsProvider从数据库中读取的,那么第一次开机的时候这些数据都是从哪儿来的呢?

    frameworks/base/packages/SettingsProvider/res/values/defaults.xml这个文件就是用来存储Android系统的默认设置
    例如:
    600000设置关屏超时时间的默认值
    102 设置亮度的默认值

    false设置是否允许安装非Market应用程序的默认值

    如果想定义defaults.xml中没有的,在这里添加后,需修改frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java,加入自己的存储代码。


    请教下各位高手,Android 4.1源码哪里可以修改 Settings -> Display -> Font size 字体大小的默认选项?默认是选择 普通(Normal) ,我想把默认值设为 超大(Huge),如下图:

    frameworks/base/core/java/android/content/res/Configuration.java文件中
    public void setToDefaults() 这个方法中进行修改,
    
    把默认字体要改为大,把fontScale值改为1.15f,全清编译;
    public void setToDefaults() {
    fontScale = 1.15f; //normal value is 1

    展开全文
  • Android字体资源

    千次阅读 2020-07-02 00:18:21
    Android字体资源1.自定义字体1.1.文件位置1.2.资源引用1.3.语法1.4.示例2.下载字体2.1.文件位置2.2.资源引用2.3.语法2.4.示例 字体资源定义可在应用中使用的自定义字体。字体可以是单独的字体文件或字体文件的集合,...

    1.概述

    Android 8.0 (API 26)提供了一个新特性,即在xml定义字体。意味着字体作为一种资源的形式存在。我们将字体文件(.ttf或.otf)添加到res/font/文件夹中,将字体捆绑为资源。这些字体会在R 文件中被编译,并在 Android Studio 中自动提供。我们可以通过@font/myfont在布局文件中使用,或R.font.myfont在Java中使用。为了能够在Android 4.1(API 16)的设备上使用这个新特性,我们的应用app要加入Support Library 26库。
    那么我们以是否有Support Library 26库作为分界线来讨论字体的使用问题。

    2.没有Support Library 26库

    新建Assets及fonts目录,并将字体文件拷贝到fonts目录下
    在这里插入图片描述
    在java代码中使用:

    TextView mTV = findViewById(R.id.tv);
    Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/华文彩云.TTF");
    mTV.setTypeface(typeface);
    

    3.有Support Library 26库

    新建资源目录font,并将字体文件拷贝到font目录下:
    (注意 :资源文件名都要求用小写的英文字命名)
    在这里插入图片描述
    在布局文件中使用:

        <TextView
            android:fontFamily="@font/pop"
            android:id="@+id/tv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    

    在java中使用:

            TextView mTV = findViewById(R.id.tv);
            Typeface typeface = ResourcesCompat.getFont(this,R.font.pop);
            mTV.setTypeface(typeface);
    

    3.1.下载字体

    这种方式是不把字体文件放在本地,而是在需要时,去网络上请求。

    3.1.1.语法

        <?xml version="1.0" encoding="utf-8"?>
        <font-family
            android:fontProviderAuthority="authority"
            android:fontProviderPackage="package"
            android:fontProviderQuery="query"
            android:fontProviderCerts="@[package:]array/array_resource" />
        
    
    • android:fontProviderAuthority:必需。定义字体请求的字体提供程序的授权。
    • android:fontProviderPackage:必需。要用于请求的字体提供程序的软件包名称。此属性用于验证提供程序的身份。
    • android:fontProviderQuery:必需。字体的字符串查询。
    • android:fontProviderCerts:数组资源。必需。定义用于为此提供程序签名的证书的哈希集。此属性用于验证提供程序的身份,仅当提供程序不属于系统映像的一部分时才是必需的。该值可以指向单个列表(字符串数组资源)或列表的列表(数组资源),其中每个单独的列表代表一个签名哈希集合。

    3.1.2.示例

    保存于 res/font/lobster.xml 的 XML 文件:

    <?xml version="1.0" encoding="utf-8"?>
        <font-family xmlns:android="http://schemas.android.com/apk/res/android"
            android:fontProviderAuthority="com.example.fontprovider.authority"
            android:fontProviderPackage="com.example.fontprovider"
            android:fontProviderQuery="Lobster"
            android:fontProviderCerts="@array/certs">
    </font-family>
    

    定义证书数组的 XML 文件保存在 res/values/ 中:

        <?xml version="1.0" encoding="utf-8"?>
        <resources>
            <string-array name="certs">
              <item>MIIEqDCCA5CgAwIBAgIJA071MA0GCSqGSIb3DQEBBAUAMIGUMQsww...</item>
            </string-array>
        </resources>
        
    

    应用字体:

    <?xml version="1.0" encoding="utf-8"?>
        <EditText
            android:fontFamily="@font/lobster"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello, World!" />
    
    展开全文
  • Android 字体修改

    2019-09-04 10:32:35
    系统自带影响Android 字体的属性 android:textStyle android:typeface android:fontFamily 1、textStyle可设置三个值:默认normal,加粗bold,倾斜体italic 2、typeface它可选的属性有 normal|sans|serif|...

    系统自带影响Android 字体的属性

    • android:textStyle
    • android:typeface
    • android:fontFamily

    1、textStyle可设置三个值:默认normal,加粗bold,倾斜体italic

    在这里插入图片描述
    2、typeface它可选的属性有 normal|sans|serif|monospace

    在这里插入图片描述

    3、fontFamily它可选的属性有 monospace|serif|cursive|casual|sans-serif|sans-serif-black|sans-serif-condensed|sans-serif-condensed|sans-serif-condensed-medium\sans-serif-light\sans-serif-medium\sans-serif-thin\sans-serif-smallcaps
    在这里插入图片描述
    4、自定义字体

        关于字体,这里推荐两个网站,可以下载到免费的字体供我们使用。
        (https://fonts.google.com/)
        (https://www.1001freefonts.com/)
        字体文件,通常都是设计师提供给我们的,一般都是 .ttf(TrueType) 或者 .otf(OpenType) 这两种格式的,比较常用的是 .ttf 格式的。
    通常我们会把字体文件放再 assets 目录下,想要加载字体文件,需要使用到 Typeface 这个类,它其中提供了一些 Api ,用于帮助我们来加载一个我们自定义的字体文件。
    

    通常使用案列

            TextView textView=new TextView(this);
            Typeface typeface=Typeface.createFromAsset(getAssets(),"xxx.ttf");
            textView.setTypeface(typeface);
    
    展开全文
  • Android字体Font相关知识

    千次阅读 2015-06-25 10:30:51
    Android字体Font相关知识
  • 浅析Android字体加载原理

    千次阅读 2017-08-08 09:27:54
    浅析Android字体加载原理前言 之前在处理系统字体问题的时候,可借鉴的资料很少,遇到了很多坑,不得不了解Android字体加载原理,现抽空写一篇总结,来加深自己对这块的理解。内容概述 Android字体系统是由底层的...
  • Android字体简介

    2012-10-26 10:09:48
    Android字体简介 Android系统默认支持三种字体,分别为:“sans”,“serif”,“monospace”。 android.graphic.typeface字体类: 本类的常量静态定义,首先为字体类型(typeface)名称 TypefaceDEFAULT ...
  • Android字体使用规范

    千次阅读 2015-03-01 20:34:57
    Android字体设计规范,Material Design
  • android字体

    热门讨论 2013-04-08 14:41:20
    各种字体,微软雅黑,楷体,宋体等29种,可以在开发中应用,也可以android手机用户修改自己的字体。(因为我只能上传60M的文件,所以只能分位两部分上传)
  • android字体工作原理

    千次阅读 2014-03-23 12:36:10
    Android字体工作原理 本文简单介绍了上层如何使用特定字体,android字体工作原理提出要求浏览器使用单独的字体,并且不影响系统默认字体的使用。图形小组在该需求的基础上,又提出了如果一个ttf文件包含多个字库,...
  • Android字体Typeface设置

    2014-07-21 19:11:50
    Android字体Typeface设置  (2013-04-08 00:09:02) 转载▼     Android系统默认支持三种字体,分别为:“sans”, “serif”, “monospace",除此之外还可以使用其他字体文件(*....
  • android字体样式

    千次阅读 2019-05-19 22:25:39
    版权声明: ... 每周会统一更新到这里,如果喜欢,可关注公众号获取最新文章。...那么按照惯例我又要出个一篇有关 Android 修改字体相关的文章,但是写下来发现内容还挺多的,所以我决定将它们拆分一下,分几...
  • android 字体设置

    2018-03-09 15:39:45
    1:android 默认字体通过布局设置:android:textStyle="bold" android:typeface="sans" 在Android SDK中使用Typeface类来定义字体,可以通过常用字体类型名称进行设置,如设置默认黑体: ...
  • Android字体加粗

    千次阅读 2019-03-06 11:32:00
    Android提供三种字体:“Sans”,“serif“和“monospace”。 在xml中属性为:android:typeface 在xml中属性为:android:textStyle = “bold”,可以将文字设置为粗体。也可以在java代码中:TextView tv = ...
  • android字体加粗的方法

    千次阅读 2013-09-09 21:31:53
    android字体加粗 android字体加粗  一、英文字体加粗  在xml文件中使用android:textStyle="bold"  二、中字体加粗  不能通过xml文件将中文设置成粗体,将中文设置成粗体的方法是:  TextView tv...
  • Android字体使用

    2017-07-12 18:06:57
    1. 获得Android系统字体: Typeface.create(String familyName, int style) familyName-字体名称,android系统自带三种字体---"sans"(默认),"serif"和"monospac style-风格,值为:Typeface.NORMAL,...
  • android 字体加粗

    千次阅读 2018-03-06 19:32:25
    android:textStyle=&quot;bold&quot; 2、中文字体加粗 不能直接在xml文件修改 1)一种方法 TextView textView= (TextView)findViewById(R.id.textView); TextPaint paint = textView...
  • Android字体工作原理与应用

    千次阅读 2015-03-04 11:33:27
    Android字体系统由android 2D图形引擎skia实现,字体系统的配置方法在各个版本中不完全相同,按照API level可以划分为三个阶段:4.0以下版本、4.0-4.4版本、5.0及以上版本。本文主要针对4.0及以上版本中字体系统的...
  • Android字体多样式和动画TextDrawable

    千次阅读 2015-10-21 12:27:23
    Android字体多样式和动画TextDrawable 在实际的Android开发中,很多时候,需要用TextView表现和展示view的内容和标题、标签之类。但是Android本身提供的TextView只提供了基础的text表现,比较单调乏味,如果要实现...
  • Android字体属性及测量(FontMetrics) 字体的几个参数,以Android API文档定义为尊,见下图 要点如下: 基准点是baseline Ascent是baseline之上至字符最高处的距离 Descent是baseline之下至字符最低处的距离 ...
  • Android字体样式

    千次阅读 2018-02-09 16:09:14
    单独设置字体样式(1)Android系统提供了几种字体样式可供选择通过设置typeface属性或者fontFamily属性设置typeface属性:normalserifsansmonospacefontFamily属性:casualcursiveserifmonospacesans-serifsans-...
  • Android 字体库详解

    千次阅读 2020-04-22 10:07:38
    android 自带的有字体库,在xml中可以设置,当然代码中自不必说。 1:xml使用 <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" ...
  • Android字体设置

    2016-08-17 13:25:38
    1.自定义字体可以使用setTypeface(Typeface)方法来设置文本框内文本的字体,而android的Typeface又使用TTF字体文件来设置字体。所以,我们可以在程序中放入TTF字体文件,在程序中使用Typeface来设置字体: 1. 第一...
  • android 字体绘制,计算距离 笔记

    千次阅读 2015-01-08 19:38:57
    Android 字体绘制 高度计算 paint FontMetrics
  • Android 字体自适应设置

    千次阅读 2012-03-28 15:15:23
    不同分辨率下,Android字体大小怎么适应? 假设需要适应320x240,480x320分辨率。在res目录下新建文件夹values-320x240, values-480x320。然后在文件夹 values ,values-320x240 和 values-480x320 下新建xml...
  • Android字体设置 Roboto字体使用

    千次阅读 2016-05-23 17:08:58
    1.android Typeface使用TTF字体文件设置字体 我们可以在程序中放入ttf字体文件,在程序中使用Typeface设置字体。 第一步,在assets目录下新建fonts目录,把ttf字体文件放到这。 第二步,程序中调用: ...
  • android 字体设置ttf

    千次阅读 2018-06-06 16:45:33
    Android系统默认字体支持四种字体,分别为:noraml (普通字体,系统默认使用的字体)sans(非衬线字体)serif (衬线字体)monospace(等宽字体)除此之外还可以使用其他字体文件(*.ttf)关于后三种字体的区别可以...
  • Android 字体相关

    2014-06-30 14:18:30
    android Typeface使用TTF字体文件设置字体 我们可以在程序中放入ttf字体文件,在程序中使用Typeface设置字体。 第一步,在assets目录下新建fonts目录,把ttf字体文件放到这。 第二步,程序中调用: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,476
精华内容 5,390
关键字:

android字体