通道:
前提工作:准备iconfont图标
前提工作的基本流程如图所示:
准备工作的流程图.png
我们可以使用github第三方账号进行登录iconfont网站。
第二步:将需要的图标添加入库
将图标添加入库.png
第三步:到库中进行查看,可以直接下载代码或添加至项目
下载代码或添加至项目.png
第四步:第三步选中添加至项目
新建一个项目(review复习),把库中的代码添加到新建的项目中。
图片.png
第四步:生成代码并下载至本地
下载到本地.png
第五步:下载到本地或第三步中选择下载项目
将项目中的内容下载到本地,下载后为一个.zip文件。
下载的内容.png
可以看到里面的详细内容如下图所示:
download.zip里面的详细内容.png
使用方法
在android中使用iconfont的思路是:
1、设置android中TextView中的字体。
2、设置TextView中的内容。
Typeface typeface = Typeface.createFromAsset(context.getAssets(), "ttf路径");
textView.setTypeface(icon)
第一步:引入ttf文件
我们在src/main文件夹下创建资源目录,将我们的download.zip中的.ttf文件放在新建的资源目录中。
右击选择Directory
创建资源目录1.png
选择对应的文件夹assets
创建资源目录2.png
创建资源目录完成.png
第二步:正式使用
方式一:单独设置
适用情况:使用iconfont的地方较少。
目录情况如下图所示:
目录情况.png
MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 主要内容
TextView mIconText;
mIconText = findViewById(R.id.texticon);
Typeface typeface = Typeface.createFromAsset(getAssets(), "iconfont.ttf");
mIconText.setTypeface(typeface);
mIconText.setText("\ue633");
}
activity_main.xml
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical"
android:gravity="center_horizontal">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="使用\\u十六进制"
android:textSize="20sp"
android:layout_margin="10dp"/>
android:id="@+id/texticon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="40sp"/>
实现的效果图
图片.png
方式二:十六进制和Unicode均适用
适用情况:任何情况均适用
目录情况如下图所示:
目录情况.png
自定义的IconFontView类:
AppCompatTextView是TextView的子类。
package com.example.testlibrary;
import android.content.Context;
import android.graphics.Typeface;
import android.util.AttributeSet;
import androidx.appcompat.widget.AppCompatTextView;
public class IconFontView extends AppCompatTextView {
public IconFontView(Context context) {
super(context);
Init(context);
}
public IconFontView(Context context, AttributeSet attrs) {
super(context, attrs);
Init(context);
}
public IconFontView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
Init(context);
}
public void Init(Context context){
Typeface icon = Typeface.createFromAsset(context.getAssets(), "iconfont.ttf");
this.setTypeface(icon);
}
}
MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
activity_main.xml
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical"
android:gravity="center_horizontal">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="使用Unicode编码"
android:textSize="20sp"
android:layout_margin="10dp"/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="\ue633"
android:textSize="40sp"
android:layout_margin="10dp"/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textSize="40sp"/>
实现效果:
图片.png