Android开发之字体设置

默认字体

Android SDK自带了四种字体:"normal"“monospace",“sans”, “serif”,如下:

字体

看这四兄弟长的还是蛮像,我是看不出多大差别。。。

设置方式

1.通过XML文件设置

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="monospace"
android:textSize="20dp"
android:textColor="#000000"
android:typeface="monospace"
android:layout_margin="5dp"/>

2.Java代码中设置

 TextView txtNormal = (TextView) findViewById(R.id.txt_normal);
    txtNormal.setTypeface(Typeface.MONOSPACE);

设置第三方字体

Res中使用

右键选择项目的app / res文件夹,然后选择New > Android resource directory。

image.png

Resource type中选择font,File name名为font。

image.png

将字体文件拷贝到font中

image.png

java代码中使用

 TextView txtNormal = (TextView) findViewById(R.id.txt_helvetica);
    Typeface typeface = ResourcesCompat.getFont(this, R.font.helvetica);
    txtNormal.setTypeface(typeface);

Assets中使用

新建Assets及fonts目录,并将字体文件拷贝到fonts目录下

拷贝字体

在java代码中使用

 TextView txtNormal = (TextView) findViewById(R.id.txt_helvetica);
    Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/helvetica.ttf");
    txtNormal.setTypeface(typeface);

第三方框架全局字体设置

这里推荐一个第三方字体设置库Calligraphy,详细可以点击连接

添加依赖

 compile ‘uk.co.chrisjenx:calligraphy:2.3.0‘

新建Application

public class BaseApplication extends Application {
@Override
public void onCreate() {
    super.onCreate();
    CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
            .setDefaultFontPath("fonts/Helvetica.ttf")
            .setFontAttrId(R.attr.fontPath)
            .build()
    );
}
}

在Activity中重写attachBaseContext方法

  @Override
protected void attachBaseContext(Context newBase) {
    super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
}

在xml中使用

 <TextView
    android:id="@+id/txt_helvetica"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Lorem ipsum"
    android:textSize="20dp"
    android:textColor="#000000"
    android:layout_margin="5dp"
    fontPath="fonts/Helvetica.ttf"
    tools:ignore="MissingPrefix"/>

如果fontPath="fonts/Helvetica.ttf"报错,在View上添加 tools:ignore="MissingPrefix”即可。
其他具体功能,详见Calligraphy

原文地址:https://www.cnblogs.com/Im-Victor/p/10739864.html

时间: 2024-07-28 23:58:06

Android开发之字体设置的相关文章

android开发不同字体设置

开发中控制不同的文字字体主要是对Typeface对象的使用 因为是简单的demo,都是使用android原生的组件,虽丑,可以学到东西就ok啦!(若有错误或者不足,请各位不吝赐教,谢谢!) 先看看简单运行的效果吧 即设置俩个button,一个textView,点击不同的按钮时,触发不同的事件.直接上代码 MainActivity.java 1 public class MainActivity extends Activity implements OnClickListener { 2 3 p

设计师给了px单位的标注,Android开发到底要设置多少dip、dp、sp?

本文链接    http://blog.csdn.net/xiaodongrush/article/details/29560431 1. 要开发一款Android APP,设计师和开发要约定哪些事情? 首先,选择一款主流机型. 然后,设计师根据该机型的屏幕尺寸设计效果图,给出px单位的标注. 最后,开发根据该机型,可以算出px与dp的换算方法,根据px单位的标注,设置为dp为单位的标注. 备注:1dp=1dip=1sp,对于一般长宽dp或者dip都可以,sp是字体专用单位,在操作系统中设置大中

Android开发之动态设置字体的样式和粗细

字体设置通常有两种形式: 1:在xml中直接设置 android:textStyle="bold" android:typeface="sans" 2:用java代码的形式设置 在Android SDK中使用Typeface类来定义字体,可以通过常用字体类型名称进行设置,如设置斜体: TextView quehuo = (TextView)findViewById(R.id.quehuo);//为TextView显示的字体设置样式 quehuo.setTypefac

Android app全局字体设置

相信很多对设计追求极致的开发者们对Android系统的默认字体都会感到不满意,这个时候需要使用自定义的字体,当然可以使用系统提供的Typeface来加载自定义字体,但是,一个个TextView的设置,是不是很快就疯了,本文给大家介绍如何快速定义自定义的app全局字体 方法很简单,就是使用github上的一个开源库Calligraphy,使用步骤只需要以下几步 在AndroidStudio中添加依赖,搜索calligraphy点击添加即可(如果还没有使用AndroidStudio,推荐切换到此go

Android APP的字体设置

Android系统自带有对字体的设置,这些设置是对字体的显示方式的设置,比如加粗,倾斜,下划线,字号等,但是对于字体本身,比如设置为楷体,隶书等貌似没有.Android系统只有一种默认的,如果需要修改字体,或者引用自己喜欢的字体,那么就需要自己设置或修改. 修改系统的字体可以下载修改字体的app即可,但是如果是对于开发者想在自己的app中使用具有自己个性的文字,可以按下面介绍的方法做(这里只是其中一种方法,相信,应该还有很多方法的) ·将自定义的字体所在的ttf文件copy到工程assets/f

Android(java)学习笔记163:Android开发时候颜色设置是bgr不是rgb

android颜色是bgr ,所以我们通常设置是rgb="#99ebe5"  ,在android设置为"#e5eb99" android:background ="#e5eb99" 

android开发通知常用设置方法

简单记录 通知上的设置方法,没有示例 //进度 通知 notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); builder = new NotificationCompat.Builder(context); builder.setContentTitle("新版本")//显示的标题 .setContentText("正在下载...

Android应用文本字体设置

第一步:新建Android项目,在assets目录下新建一个folder,名字可以随意, 我这里命名为fonts 第二步:把字体文件拷贝到此新建的目录下(在windows系统中C:\Windows\Fonts目录下有很多字体文件) 第三步,在MainActivity下创建静态方法 //因为将字体文件读入内存是个很耗时的操作,如果字体文件比较大的话,会有 很明显的卡顿现象可以将Typeface 定义成为全局变量,然后可以加个判断,如 果typeface存在的话就直接调用,如果不存在的话,再创建,这

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

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