Android应用开发使用第三方字体

Android原生的字体可能不会让UI妹纸欢心,实在觉得它太丑了,于是乎UI妹纸就用了第三方字体作为APP的字体风格,这篇博客就是总结在Android应用开发中怎样使用第三方字体。

首先得有第三方字体库,这里的字体库文件是black_simplified.TTF,在Android Assert目录下新建front文件夹,并将字体库文件放在front目录下面,即/Assert/front/black_simplified.TTF

这里来总结下怎样在应用中使用第三方字体才是最简便的。以TextView为例,API接口中有一个方法叫做setTypeface(Typeface obj),这就是设置TextView显示的字体样式的接口,那么怎样得到Typeface对象呢,查看API后可以由Typeface.creatFromAssert(obj)方式来获取,单个TextView使用第三方字体的整个流程如下:

public class MainActivity extends Activity {
	private Typeface TEXT_TYPE ;
	private TextView mTv ;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 加载自定义字体
		try{
			TEXT_TYPE = Typeface.createFromAsset(getAssets(),"fronts/black_simplified.TTF");
		}catch(Exception e){
			Log.i("MainActivity","加载第三方字体失败。") ;
			TEXT_TYPE = null ;
		}
		mTv = (TextView)findViewById(R.id.tv1) ;
		if(TEXT_TYPE != null){
			mTv.setTypeface(TEXT_TYPE) ;
		}
		mTv.setText("Android程序开发") ;
	}
}

运行之后即可看到效果。但是这样是不是很麻烦?!要为每一个需要用到第三方字体的控件设置字体样式。这里的解决办法是重写需要使用第三方字体的控件,这里以TextView为例,当然Android中可以显示字体的控件还有很多,如Button、EditText。Android开发中常常需要实现自己的Application对象,因为它是全局的,也是程序最先执行的模块,也便于数据共享,所以,初始化字体的操作就放在我们自定义的Application子类MyApp中。代码片段如下:

在MyApp.java的onCreate函数中初始化自定义的typeface:

@Override
	public void onCreate() {
		// 加载自定义字体
		try{
			TEXT_TYPE = Typeface.createFromAsset(getAssets(),"fronts/black_simplified.TTF");
		}catch(Exception e){
			Log.i("MyApp","加载第三方字体失败。") ;
			TEXT_TYPE = null ;
		}
		super.onCreate();
	}

在AndroidManifest.xml文件中的<application>中注明name属性为自定义的Application子类:

<application
        android:name="com.example.androidfronttypeface.MyApp"
        ……
</application>

自定义TextView:

public class MyFrontTextView extends TextView {
	public MyFrontTextView(Context context) {
		super(context);
		setTypeface() ;
	}
	public MyFrontTextView(Context context, AttributeSet attrs) {
		super(context, attrs);
		setTypeface() ;
	}
	public MyFrontTextView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		setTypeface() ;
	}
	private void setTypeface(){
		// 如果自定义typeface初始化失败,就用原生的typeface
		if(MyApp.TEXT_TYPE == null){
			setTypeface(getTypeface()) ;
		}else{
			setTypeface(MyApp.TEXT_TYPE) ;
		}
	}
}

Layout文件中需要引用自定义的TextView:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <com.example.androidfronttypeface.MyFrontTextView
        android:id="@+id/tv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=”Android应用开发”
 />
</RelativeLayout>

大概就是这样的,如果是Button或其他控件需要使用第三方字体,也是同样的道理。

源码参考

时间: 2024-10-25 06:02:59

Android应用开发使用第三方字体的相关文章

iOS开发之 第三方字体的应用

在iOS的开发中有时候由于设计师或者产品经理的需要在所开发的App 中应用到一些比较个性的字体(第三方字体).由于iOS和安卓在字体的使用上有很大的区别.iOS系统就支持那么几种字体,大多数还仅仅支持英文和数字,(苹果姥爷也是够了).所以说需要开发人员自己去下载字体库来实现字体的自定义.好在iOS是支持TTF 类型的字体使用的.开发人员可以自己去下载或者是让自己的美工来自己扣字体(如果你们家 的美工妹妹足够牛逼.)在这里先介绍一下我经常用的一个下载字体的网站:http://www.zhaozi.

android app开发,如何使用/引入第三方扩展jar

我目前开发的android app需要使用第三方的jar  hessian-4.0.1.jar,于是我把jar加入到了工程中,并通过Order and Export. 进行检查. Order and Export 提示从第三方jar的所有类都没有加入到运行环境中. 如何才能正确快速的在android工程中使用第三方jar? 我不太会使用ant 和 Maven 处理方法 下面是一个不错的方法,可以有效的在android工程里面添加第三方jar 在工程中创建一个libs的目录 把你的第三方jar加入

Android 全局使用第三方字体

给APP全局设置字体主要分为两个方面来介绍 一.给原生界面设置第三方字体 1.准备工作-下载第三方字体:传送门 将文件放入工程assets目录下.(一般个人习惯单独命名一个文件夹放字体文件,也可直接放入根目录,但记得改引用路径) 2.代码实现 a.自定义application,将第三方的字体,替换当前系统默认字体 b.定义style <style name="AppTheme.NoActionBar"> <item name="windowActionBar

Android(java)学习笔记100:android开发中修改字体

首先如果android内部自带的字体不是我们需要的字体,那我们就需要字体文件导入到android开发工程中,下午我们详细讲述: 1.我们首先分析知道,我想要TextView控件中文字的字体是:华文楷体,我们发现这是android系统内部所不具备的,所以我们要自己导入楷体文件.ttf 我们把华文楷体的字体文件放到assets文件夹下,新建一个fonts文件夹存放DroidSansFallback.ttf文件,如上图: 然后就是在程序中如何调用这个字体: 1 protected void onCre

【转】【Android应用开发详解】第01期:第三方授权认证(一)实现第三方授权登录、分享以及获取用户资料

转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9057257 由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字和图片等这样的效果,几经波折,查阅了一番资料,做了一个Demo.实现起来的效果还是不错的,不敢独享,决定写一个总结的教程,供大家互相交流.学习和参考,博主只求能和大家共同进步.希望能多多支持! 这篇文章中,我们使用到了Share SDK,它是为iOS.Android.WP8的APP提供社会化功能的一

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角) 2015-04-05 15:25 2482人阅读 评论(1) 收藏 举报开源框架 图像: 1.图片浏览控件MWPhotoBrowser       实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作.      下载:https://github.com/mwaterfall/MWPhotoBrowser目前比较活跃的社区仍旧是Github,

iOS开发-常用第三方开源框架介绍

iOS开发-常用第三方开源框架介绍 图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. 下载:https://github.com/mwaterfall/MWPhotoBrowser 目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code.SourceForge等地方.由于Github社区太过主流,这里主要介绍一下G

Android应用开发-快速入门

内容摘要 了解Android 操作系统 搭建Android 开发工具 使用Android 模拟器 案例-电话拨号器/短信发送器 掌握点击事件的四种实现方式 掌握Android 常见布局 了解Android 中的长度单位 1. 手机制式 手机的发展根据通信技术大致可以划分为4 个时代(G:Generation 的缩写) 第一代模拟制式手机(1G):1G就是大哥大,手机类似于简单的无线电双工电台,通话是锁定在一定频率,所以使用可调频电台就可以窃听通话 第二代GSM.CDMA等数字手机(2G):手机使

Android集成主流优秀第三方组件框架

Android集成主流优秀第三方组件框架 这是一个集成目前Android主流优秀第三方组件.优秀好用的自定义控件.实用工具类封装. 以及一些APP共通模块(比如:版本更新.意见反馈.引导界面等等)的开发包,帮助程序员 快速开发自己的APP 已集成第三方开源组件: 网络请求库android-async-http 图片异步加载库universal-image-loader Sqlite数据库操作ormlite-android 社会化分享ShareSDK+短信验证码 Zxing二维码库 百度地图定位S