Android中增加新字库的方法
Android系统的字库文件放在:alps\frameworks\base\data\fonts
其中DroidSans.ttf是默认英文字库;DroidSans-Bold.ttf是默认英文粗体字库;DroidSansFallback.ttf是默认中文字库。
以增加一套第三方的中文字库()为例。
因为Google提供的默认中文字库DroidSansFallback.ttf不很全面,所以客户经常有需求增加三方中文字库以支持中文字符的显示,且把这套新的字库作为系统的默认中文字库。
分两种情况:
一、不需要保留Google默认的中文字库:
把这个三方字库重命名为DroidSansFallBack.ttf,并拷贝到alps\frameworks\base\data\fonts下,替换系统原来的默认中文字库。重新new工程并download bin到手机。
二、有需要保留Google默认的中文字库,并在此基础上增加自己需要的新字库
根据code version不同而做法不同:
- ICS 4.0之前的版本:
1) 拷贝NewFontFile.ttf文件到 alps\frameworks\base\data\fonts下
2) 把字库文件加入编译选项里:
修改frameworks/base/data/fonts/Android.mk文件:
代码如下:
copy_from := \
DroidSansMono.ttf \
NewFontFile.ttf \
……
3) 修改external/skia/src/ports/SkFontHost_android.cpp 文件:
代码如下:
//增加对应的font family
static const char *gNewFontFileNames[] = {
"............", NULL //省略的部分由当前系统支持的字库引擎来决定
};
//增加以下语句
{“NewFontFile.ttf", gNewFontFileNames },
这样就算添加完成了。
- ICS 4.0版本:
1) 把对应的字库文件拷贝到frameworks/base/data/fonts下
2) 在fallback_fonts.xml (frameworks/base/data/fonts)下添加新字库文件的font family:
代码如下:
<family>
<fileset>
<file>NewFontFile.ttf</file>
</fileset>
</family>
3) 修改font makefile:fonts.mk (frameworks/base/data/fonts)
代码如下:
PRODUCT_COPY_FILES := \
......
frameworks/base/data/fonts/NewFontFile.ttf:system/fonts/NewFontFile.ttf \
相关推荐
-
android从系统图库中取图片的实例代码
本文实例讲述了android从系统图库中取图片的实现方法.分享给大家供大家参考.具体如下: 在自己应用中,从系统图库中取图片,然后截取其中一部分,再返回到自己应用中.这是很多有关图片的应用需要的功能. 写了一个示例,上来就是个大按钮,连布局都不要了.最终,用选取图片中的一部分作为按钮的背景. 这里需要注意几点: ① 从图库中选取出来保存的图片剪辑,需要保存在sd卡目录,不能保存在应用自己的在内存的目录,因为是系统图库来保存这个文件,它没有访问你应用的权限: ② intent.putExtra("
-
Android编程中TextView宽度过大导致Drawable无法居中问题解决方法
本文实例讲述了Android编程中TextView宽度过大导致Drawable无法居中问题解决方法.分享给大家供大家参考,具体如下: 在做项目的时候,很多时候我们都要用到文字和图片一起显示,一般设置TextView的DrawableLeft.DrawableRight.DrawableTop.DrawableBottom就行了.但是有一种情况是当TextView的熟悉是fill_parent或者使用权重的时候并且设置了起Gravity的ceter的时候,Drawable图片是无法一起居中的,为了
-
配置android开发环境时出现eclipse获取不到ADT的解决方法
本文实例讲述了配置android开发环境时出现eclipse获取不到ADT的解决方法.分享给大家供大家参考,具体如下: 在安装完Android SDK后eclipse要获取ADT, 可是由于GFW的存在, eclipse经常无法从http://dl-ssl.google.com/android/eclipse 获取到任何东西. 下面提供解决方法: 以往安装ADT根本就不是个问题,可是现在就是个大问题了,联通的宽带网络连www.google.com.hk都打不开,你叫我们这些P民怎么活? 无论ht
-
android 调用系统的照相机和图库实例详解
android手机有自带的照相机和图库,我们做的项目中有时用到上传图片到服务器,今天做了一个项目用到这个功能,所以把我的代码记录下来和大家分享,第一次写博客希望各位大神多多批评. 首先上一段调用android相册和相机的代码: 复制代码 代码如下: Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//调用android自带的照相机 photoUri = MediaStore.Images.Media.EXTERNAL_CON
-
丢失Android系统库或者Conversion to Dalvik format failed with error 1错误的解决方法
本文分析了丢失Android系统库或者Conversion to Dalvik format failed with error 1错误的解决方法.分享给大家供大家参考,具体如下: 在eclipse开发Android项目时出现的很多问题都可以使用Project--------->clean来轻易解决. 但如果出现说Android库找不到,或者不小心remove了Android系统库,怎么重新添加Android系统库呢?在eclipse里面的Java Build Path里面是没法添加例如Andr
-
Android Studio项目中导入开源库的方法
前两天,谷歌发布了Android Studio 1.0的正式版,也有更多的人开始迁移到Android Studio进行开发.然而,网上很多的开源库,控件等还是以前的基于Eclipse进行开发,很多人不知道怎么导入到自己的基于Android Studio项目中来,微博上也有人私信我,让我来写写,正好今天回来的比较早,就写写吧.主要介绍一下常见的一些导包的场景. 前言 复制代码 代码如下: --project //项目目录 | build.gradle //项目的gradle配置文件
-
Mac中Eclipse连不上Android手机的解决方法
现象是: Windows下Eclipse可以连接Device里能显示设备名称,但是在Mac OS X下的Eclipse Device始终不能显示连接. 解决方法: 1.把Android手机开启调试模式,然后连接在我们的Mac OS上. 2.选择Mac的 关于本机->更多信息-> 系统报告->找到usb选项,右边会出现一系列和usb相关的设备我们找到自己的Android设备并选中. 3.选中后找到 供应商ID或叫厂商ID,我的MX4手机显示的供应商ID是:0x2a45 4.打开Mac终端
-
Android编程向服务器发送请求时出现中文乱码问题的解决方法
本文实例讲述了Android编程向服务器发送请求时出现中文乱码问题的解决方法.分享给大家供大家参考,具体如下: 我们在andorid项目中通过get方式向服务器发送请求,其中url参数带有中文,将会产生乱码,乱码产生的原因有两种: 1. 在提交参数时,没有对中文参数进行URL编码 2. Tomcat服务器默认采用的是IOS8859-1编码(不支持中文)得到参数值 解决: 1. 进入android项目,在其中要提交参数的时候,对参数的值进行编码: 复制代码 代码如下: URLEncoder.enc
-
Android中增加新字库的方法
Android系统的字库文件放在:alps\frameworks\base\data\fonts 其中DroidSans.ttf是默认英文字库:DroidSans-Bold.ttf是默认英文粗体字库:DroidSansFallback.ttf是默认中文字库. 以增加一套第三方的中文字库()为例. 因为Google提供的默认中文字库DroidSansFallback.ttf不很全面,所以客户经常有需求增加三方中文字库以支持中文字符的显示,且把这套新的字库作为系统的默认中文字库. 分两种情况: 一
-
在android中增加curl的解决方法
curl是一个著名的开源文件传输协议实现软件,其中包括了HTTP.HTTPS.FTP等多种常用不常用协议的实现.在curl最新版本的官方源代码中其实已经包括了android的编译文件(Android.mk),不过要想编译通过还需要做一些工作. 我所使用的curl版本是7.20.0,android源代码版本是eclair 2.1.首先将curl解压到external目录下,将目录名称改为curl(不改也可以,不过android的习惯是不带版本号,入乡随俗吧). (1) 首先要创建一个头文件curl
-
Android 中隐藏虚拟按键的方法实例代码
下面通过一段代码给大家讲解android 隐藏虚拟按键的方法,废话不多说了,大家多多看看代码和注释吧,具体代码如下所示: /** * 隐藏虚拟按键,并且全屏 */ protected void hideBottomUIMenu() { //隐藏虚拟按键,并且全屏 if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api View v = this.getWindow().getDec
-
JavaScript实现DIV层拖动及动态增加新层的方法
本文实例讲述了JavaScript实现DIV层拖动及动态增加新层的方法.分享给大家供大家参考.具体分析如下: 无刷新添加一个新的DIV层,并可实现的该层的拖动,鼠标拖动层可移动位置,将JS部分另存为一个新文件,用到的时候从外部引入,这个拖动层代码很流行,GG和YAHOO等大网站经常可以看到这种效果. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=
-
Android中使用Post请求的方法
本文实例讲述了Android中使用Post请求的方法.分享给大家供大家参考.具体如下: 一.需要用到的场景 在jQuery中使用$.post()就可以方便的发起一个post请求,在android程序中有时也要从服务器获取一些数据,就也必须得使用post请求了. 二.需要用到的主要类 在android中使用post请求主要要用到的类是HttpPost.HttpResponse.EntityUtils 三.主要思路 1.创建HttpPost实例,设置需要请求服务器的url. 2.为创建的HttpPo
-
Android中Socket通信的实现方法概述
本文实例简述了Android中Socket通信的实现方法,具体内容如下: 一.socket通信概述 通俗的来说套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元.它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口. 应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题.多个TCP连接或多个应用程序进程可能需要通过同一个TCP
-
Android 中ImageView的ScaleType使用方法
Android 中ImageView的ScaleType使用方法 ImageView的ScaleType属性,表示的是ImageView中资源图片的填充方式.scaleType的属性值有好几种,分别是: matrix(默认) center centerCrop centerInside fitCenter fitEnd fitStart fitXY 这里要注意:matrix表示一种填充方式叫默认填充,如果布局和代码中不设置ScaleType属性,ImageView默认是fitCenter! 先上
-
Android中常用的XML生成方法实例分析
本文实例讲述了Android中常用的XML生成方法.分享给大家供大家参考.具体如下: 1. java代码: package com.android.antking.xml; import java.io.OutputStream; import java.util.List; import org.xmlpull.v1.XmlSerializer; import android.util.Xml; /**采用pull 生成xml文件 * * @author antkingwei * */ pub
-
Android 中添加水平线和垂直线方法总结
Android 中添加水平线和垂直线方法总结 1.添加水平线 <View android:layout_height="0.5dip" android:background="#686868" android:layout_width="match_parent"/> 2.添加垂直线 <View android:layout_height="match_parent" android:background=&
-
Android中自定义一个View的方法详解
本文实例讲述了Android中自定义一个View的方法.分享给大家供大家参考,具体如下: Android中自定义View的实现比较简单,无非就是继承父类,然后重载方法,即便如此,在实际编码中难免会遇到一些坑,我把自己遇到的一些问题和解决方法总结一下,希望对广大码友们有所帮助. 注意点① 用xml定义Layout时,Root element 最好使用merge 当我们需要继承一个布局比较复杂的ViewGroup(比较多的是LinearLayout.RelativeLayout)时,通常会用xml来
随机推荐
- React 子组件向父组件传值的方法
- linux 定时任务详解
- 三款Android炫酷Loading动画组件推荐
- MySQL使用UNIQUE实现数据不重复插入
- 小型Drupal数据库备份以及大型站点MySQL备份策略分享
- 纯JS半透明Tip效果代码
- jquery解决客户端跨域访问问题
- 脚本控制自适应高度的缩短问题
- 利用python发送和接收邮件
- Python正则表达式使用经典实例
- SQL语句练习实例之四 找出促销活动中销售额最高的职员
- 升级和卸载Oracle数据库软件的命令整理
- javascript每日必学之循环
- C#实现appSettings节点读取与修改的方法
- java 迭代器模式实例详解
- 使用import导入静态成员的方法 原创
- PHPnow安装服务[apache_pn]失败的问题的解决方法
- 献血后怎样“补”,才能尽快恢复?
- Java多线程回调方法实例解析
- linux 下隐藏进程的一种方法及遇到的坑