移动端使用第三方ttf字体怎么安装时,是否需要在手机上安装ttf字体怎么安装

Android为整个应用切换第三方字体
1、通过反射来获取字体并替换
import java.lang.reflect.F
import android.content.C
import android.graphics.T
public final class FontsOverride {
public static void setDefaultFont(Context context,
String staticTypefaceFieldName, String fontAssetName) {
final Typeface regular = Typeface.createFromAsset(context.getAssets(),
fontAssetName);
replaceFont(staticTypefaceFieldName, regular);
protected static void replaceFont(String staticTypefaceFieldName,
final Typeface newTypeface) {
final Field staticField = Typeface.class
.getDeclaredField(staticTypefaceFieldName);
staticField.setAccessible(true);
staticField.set(null, newTypeface);
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
2、在Application类中执行修改字体(替换系统默认字体)
public final class Application extends android.app.Application {
public void onCreate() {
super.onCreate();
FontsOverride.setDefaultFont(this, "DEFAULT", "MyFontAsset.ttf");
FontsOverride.setDefaultFont(this, "MONOSPACE", "MyFontAsset2.ttf");
FontsOverride.setDefaultFont(this, "SERIF", "MyFontAsset3.ttf");
FontsOverride.setDefaultFont(this, "SANS_SERIF", "MyFontAsset4.ttf");
配置文件Manifest.xml中修改(只限系统theme中已有字体)
三、遍历viewGroup下所有文本控件并设置字体
* Recursively sets a {@link Typeface} to all
* {@link TextView}s in a {@link ViewGroup}.
public static final void setAppFont(ViewGroup mContainer, Typeface mFont, boolean reflect)
if (mContainer == null || mFont == null)
final int mCount = mContainer.getChildCount();
// Loop through all of the children.
for (int i = 0; i < mC ++i)
final View mChild = mContainer.getChildAt(i);
if (mChild instanceof TextView)
// Set the font if it is a TextView.
((TextView) mChild).setTypeface(mFont);
else if (mChild instanceof ViewGroup)
// Recursively attempt another ViewGroup.
setAppFont((ViewGroup) mChild, mFont);
else if (reflect)
Method mSetTypeface = mChild.getClass().getMethod("setTypeface", Typeface.class);
mSetTypeface.invoke(mChild, mFont);
} catch (Exception e) { /* Do something... */ }
final Typeface mFont = Typeface.createFromAsset(getAssets(),
"fonts/MyFont.ttf");
final ViewGroup mContainer = (ViewGroup) findViewById(
android.R.id.content).getRootView();
HomeActivity.setAppFont(mContainer, mFont);
四、自定义控件并设置字体
public class CusFntTextView extends TextView {
public CusFntTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
public CusFntTextView(Context context, AttributeSet attrs) {
super(context, attrs);
public CusFntTextView(Context context) {
super(context);
private void init() {
if (!isInEditMode()) {
Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "Futura.ttf");
setTypeface(tf);他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)移动端页面使用rem来做适配 - 简书
移动端页面使用rem来做适配
rem(font size of the root element)是指相对于根元素(即html元素)的字体大小的单位。
假设根元素的字体大小是10px, 则5rem的大小为 5*10=50px,例如
font-size: 10
width: 2 /* 2*10 = 20*/
rem来做适配
以前我们往往这样做页面:viewport width 设置为 device-width,然后选我们需要兼容设备的最小宽度(一般是320px)。根据这最小宽度来做页面。单位使用px和百分比。在宽度不同的设备上,页面的字体大小,内容尺寸都是一样的,不同的是,大屏的内容间的空隙比小屏的大。所以这样做的缺点就是,页面在某些尺寸的设备上显示的效果不好。
如果用rem来页面,我们会根据不同的设备宽度在根元素上设置不同的字体大小。宽度越宽,字体越大。然后对原本使用px的地方使用rem来替换。这样,字体大小,内容尺寸,对随着屏幕宽度的变大而变大。
1 根据不同的设备宽度在根元素上设置不同的字体大小。
为了能将设计稿中的 px 方便的转换为页面中 rem,我设置 1rem 为 宽度为 640px 的设计稿中的 100px。代码如下
(function(win) {
var doc = win.
var docEl = doc.documentE
function refreshRem() {
var width = docEl.getBoundingClientRect().
if (width & 540) { // 最大宽度
width = 540;
var rem = width / 6.4;
docEl.style.fontSize = rem + 'px';
win.addEventListener('resize', function() {
clearTimeout(tid);
tid = setTimeout(refreshRem, 300);
}, false);
win.addEventListener('pageshow', function(e) {
if (e.persisted) {
clearTimeout(tid);
tid = setTimeout(refreshRem, 300);
}, false);
refreshRem();
})(window);
还有一种方法会根据 devicePixelRatio 设定 initial-scale 来放大 viewport,使页面按照物理像素渲染,提升清晰度。 代码见
将设计稿的宽度缩放至 640px。在上一步中,1rem 为此时设计稿中 100px 的值。屏幕的宽度也就是 (640 / 100) = 6.4rem。
前端攻城狮。爱编程,爱美食。
https://github.com/iamjoel
前端文章导航页?
http://www.jianshu.com/p/636f0ade9971
前端技术交流,学习前端有疑问等,加我微信撩我吧~
在移动互联网快速发展的今天,手机的种类和尺寸越来越多,作为前端的小伙伴们可能会越来越头疼,但又不得不去适配一款又一款的新机型。对于移动端适配,不同的公司、不同的团队有不同的解决方案。我在项目中也用了一部分解决方案,也看到了一些解决方案,对比下,总结一些自己的理解,希望对各位...
刚开始做移动端web开发的同学应该都碰到过页面适配问题,为什么我在开发手机上调试好的页面在其他手机会有这样或那样的样式问题?viewport我也设置了,为什么还是显示不正常?难道我要为每种手机屏幕写媒体查询,有没有简单的方式,可以不用关注手机屏幕的差异性呢? 百度中搜索移动...
了解真实的『REM』手机屏幕适配rem 作为一个低调的长度单位,由于手机端网页的兴起,在屏幕适配中得到重用。 使用 rem 前端开发者可以很方便的在各种屏幕尺寸下,通过等比缩放的方式达到设计图要求的效果。rem 的官方定义『The font size of the root...
一年前笔者写了一篇 《手机端页面自适应解决方案—rem布局》,意外受到很多朋友的关注和喜欢。但随着时间的推移,该方案已然过时,故为大家介绍一个目前我极力推荐使用的,更加完美的方案——rem布局(进阶版)另外:此方案仅适用于移动端web文章底部常见问题说明第四条,笔者已给出一...
原文地址 http://blog.poetries.top//mobile-layout 一、为什么要做适配 为了适应各种移动端设备,完美呈现应有的布局效果 各个移动端设备,分辨率大小不一致,网页想铺满整个屏幕,并在各种分辨下等比缩放 二、适配方案 固定...
TanTan 探探 和 陌陌 都有 前提 现在比较流行的社交软件都有这么一个功能模块,喜欢←划,不喜欢→划, 多么经典的一个广告语啊。我就在业余时间写了这么一个demo样例 这两个都是比较参数经典的案例 参数 我们可以通过设置isCyclically来实现视图是否循环,通过...
文/婉悦悠然 碧湖之前世今生——目录 第十七章 冰释前嫌 第十八章 中毒真相 婉莹床下,通的是一条水路,她很快游到了尽头。 终点是竟墨子煜府中的人工湖。 湖中开口非常隐蔽,若不是一路顺水而来,很难在湖中找到出口。 婉莹游到湖心,拨开水草,悄悄往冰棺里放了一些药物。 她独自念...
看到牌,有些不高兴。原本是最喜欢的牌,却是几个牌里最不明白的一张。因为不明白,也因为似乎当时在老师看来是个很随意没有特殊点的牌,也许老师没有,但我有这样的感觉。会觉得,期待没有解决,落空。写完这些再回想牌面,似乎有喜欢多了一些。我不认为它是权杖飞出去还是飞进来,认为是就在那...
管理文集的一周写作计划: 一、你去哪儿 记得十多年前在读《拿破仑希尔的成功学》就有了对“目标”的印象,但那时起对“目标”的理解是朦胧的,是概念的,是冲动的,是认识字而已。相信大多人会读过点希尔的作品,那种地摊上厚厚的盗版书到处都是。起初去读希尔,是冲着“成功”去的。高中时候...
我已经忘记了是哪首歌 更忘记了是谁在唱 那些晨光中的街角 水中的流浪狗 无尽的沙滩和愚蠢的海浪 我不愿再想起那些故事 它们太过甜蜜 甜蜜得让我失去所有生活的希望2被浏览263分享邀请回答0添加评论分享收藏感谢收起写回答平板/笔记本
HiLink生态产品
终端云服务专区
怎么把自己在网上下的ttf字体运用到自己手机上?
&略有小成&
来自:浏览器
我在网上下了字体,可是不知道怎么使用,请问谁知道?教教我
width:100%">
&独步江湖&
来自:浏览器
p7版块里貌似有教程,楼主可以去看看~
width:100%">
&已臻大成&
来自:浏览器
搜字体替换教程,试过几次都成功了,一两句话说不清。
width:100%">
&略有小成&
来自:浏览器
width:100%">
&花粉版主&
来自:浏览器
http://cn.club.vmall.com/thread--1.html&&楼主可以看一下
width:100%">
界面语言专区花粉勋章
好基友勋章
花粉好机友,注册时间大于99天
关注华为花粉俱乐部微信公众平台——“华为花粉俱乐部”
1000万花粉
纪念花粉俱乐部注册花粉数超过1000万
在职斑竹的身份勋章,感谢斑竹的辛勤劳动
养老斑竹的身份勋章,感谢斑竹的辛勤劳动
《年味到》云南罗平螺丝田的油菜花晋祠1少城春韵大美蓬莱杏花村随拍
花粉客户端
Make it Possible
Make your device special
华为云服务
Huawei cloud services
音乐播放器
Huawei Music
Huawei Vmall
关注花粉俱乐部
举报邮箱:
|关注花粉俱乐部:
Copyright (C)
华为软件技术有限公司 版权所有 保留一切权利

我要回帖

更多关于 字体 的文章

 

随机推荐