Icon Font在Android中的使用

Android中正确使用字体图标(iconfont)的方法 字体图标 字体图标是指将图标做成字体文件(.ttf),从而代替传统的png等图标资源。 使用字体图标的优点和缺点分别为: 优点:       1. 可以高度自定义图标的样式(包括大小和颜色),对于个人开发者尤其适用       2. 可以减少项目和安装包的大小(特别你的项目中有很多图片icon时,效果将是M级)       3. 几乎可以忽略屏幕大小和分辨率,做到更好的适配       4. 使用简单       …… 缺点:        1. 只能是一些简单的icon,不能代替如背景图、9图等资源       2. 一些需要文字说明的icon,图片资源将会是更 立即下载

一、需求

在布局的过程中,有可能涉及到某个TextView前面需要加一个Icon,即”图标+文字”的形式,解决的方式有很多(以左侧加图标为例):

  • “android:drawableLeft”属性
    设置该属性值可以很简便的在TextView文本内容左侧添加任意的图片进行显示。优点就是方便快捷;缺点是图片不会随着TextView的文字大小改变,图片多大,就显示多大,所以需要UI设计师同事(不能叫美工哦!)切多套对应不同分辨率下的图片用以适配。
  • 在TextView左侧加ImageView
    该方法也可以实现”左侧图标+文字”的形式,优点是只需要一套图,通过设置ImageView的大小进行适配;缺点是多一个控件多一份操作,同时当一个页面中”图标+文字”的形式的内容多的情况下,使布局代码变得更复杂,不利于维护。
  • 使用Icon Font
    该方法能让TextView直接显示图标和文字而不需要另外加控件进行单独的图标显示,效果类似于设置”android:drawableLeft”属性。其优点在于图标可以随文字的大小发生改变,同时可以设置图标的颜色,简化布局。(缺点的话根据参考文章所说只支持单色图标)

以上三种方式孰优孰劣根据具体实际情况而定。

二、简介

Icon Font就是将一些单色图标作为字体放到字体库中,当应用运行时加载自定义字体库将其展示出来。Icon Font可以像字体一样设置颜色大小,若字体库支持的话还可以设置font-weight。

该技术最早在前端中流行,对于App来说可以减少安装包的大小(毕竟是将单色图标放在字体库中而不是drawable文件中),但是在某些地方还是增加了代码量,适当优化下还是可以接受的。

三、字体图片库和字体编码

1.字体图片库(.tff文件)

在开发过程中,可以让UI设计师将单色图标做到字体包.tff文件中,然后给出每个图标在字体包中对应字体编码就行(如果UI设计师不会的话就另当别论了)。

此外,若没有硬性要求的话,可以到阿里IconFont字库根据自身需求选几个图标并将它们下载到本地,将下载下来的压缩包中的.tff文件放到assets文件夹下,例如assets/iconfont.tff。

2.字体编码(16进制字符)

要是从UI设计师那拿到字体包的话,要记得顺便拿字体编码。

若是从阿里IconFont字库中下下来的压缩包中除了.tff文件外,还有三个.html图标字体编码说明文件,Android开发中只需要看demo_unicode.html文件就够了。打开demo_unicode.html,可以看到图标下面有对应的一串16进制的字符,即字体编码,通过这一串字符才能从.tff文件中提取出对应的图标。
这里写图片描述

四、使用Icon Font

效果图:
效果图

1.设置Typeface

TextView要使用Icon Font需要调用setTypeface()方法设置字体样式:

Typeface typeface = Typeface.createFromAsset(getAssets(), "iconfont.ttf");
TextView tv = ((TextView)findViewById(R.id.tv));
tv.setTypeface(typeface);
2.使用字体编码
  • 静态使用
    1) 在strings.xml中使用字体编码进行赋值:

    <Resources>
       <string name="text">&#xe8d4; 位置</string>
    </Resources>

    2)在布局中引用:

    <TextView
      android:id="@+id/tv"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/text"
      android:textSize="20sp" />
  • 动态使用

    • 不替换图标颜色,直接将字体编码中的”&#x”替换为”\u”并去掉”;”:
    tv.setText("\ue8d4 动态设置的IconFont");
    • 替换图标颜色,需用到HTML标签:
    tv.setText(Html.fromHtml("<font color=\"red\">&#xe8d4;</font><font color=\"gray\">设置IconFont图标颜色</font>"));

参考文章:http://www.jianshu.com/p/4166c4cd2fda

避坑指南:ShardingSphere连接达梦/金仓数据库时SQL解析器的那些‘坑‘ 本文深入探讨了ShardingSphere与国产数据库(如达梦、金仓)集成时遇到的SQL解析器差异问题,提供了详细的解决方案和优化策略。通过分析SQL方言差异、JDBC实现差异及解析器兼容性,帮助开发者有效避坑,提升分布式数据库架构设计的效率与稳定性。 阅读详情

相关推荐

[附源码]计算机毕业设计JAVA网上花店系统

附源码]计算机毕业设计JAVA网上花店系统项目运行环境配置:(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat。

ssm毕设程序设计 2445

Android 中 使用 IconFont

在上篇 react-native-vector-icons的集成心得 中简单了介绍了什么是 IconFont 以及如何在React Native 中使用,这里再开一篇来具体说明什么是 IconFont 并且总结一下在 Android 开发中如何使用。 什么是 IconFont IconFont 其实就是将若干个 SVG 矢量图的做成了字体文件 ( .ttf ) ,供开发者使用。 ...

FritzXu的博客 2234

QNX Neutrino 进程间通信编程之Message-passing/Pulse

Interprocess Communication(IPC,进程间通信)在QNX Neutrino从一个嵌入式实时系统向一个全面的POSIX系统转变起着至关重要的作用。IPC是将在内核中提供各种服务的进程内聚在一起的粘合剂。在QNX中,消息传递是IPC的主要形式,也提供了其他的形式,除非有特殊的说明,否则这些形式也都是基于本地消息传递而实现的。本篇幅主要讲解Message-passing和Pulse。

zhuwade的博客 3533

【Android】 IconFont的使用

IconFont虽然看起来是图标,实际原理跟字体的实现方式是一样的,所以我们把每个Icon当作一个特殊的文字来理解和处理。:SVG 使用基于路径的矢量图形,这意味着图形可以无限放大而不失真,非常适合需要多种分辨率的应用。:SVG 文件是文本格式,可以使用任何文本编辑器创建和编辑。:SVG 可以包含交互性,如事件处理器,允许用户与图形进行交互。:SVG 文件的大小通常比位图小,这使得它们在网页上加载更快。:SVG 支持 CSS 样式,可以方便地改变图形的外观。前几步如之前的,在平台获取字体文件压缩包。

2303_79296612的博客 1095

VQGAN实战:从文本到高清图像的保姆级生成教程(含PyTorch代码)

本文详细介绍了VQGAN(Vector Quantized Generative Adversarial Network)在文本到高清图像生成中的应用,提供了从环境配置到模型加载、文本编码及图像生成的完整PyTorch代码教程。通过实战案例和高级调优技巧,帮助开发者快速掌握VQGAN的核心技术,实现百万像素级的高清图像生成。

u8v9w0x1y的博客 649

Emotion-LLaMA实战指南:从零构建多模态情感识别系统(附Python代码)

本文提供了Emotion-LLaMA多模态情感识别系统的实战指南。通过详细的步骤,指导读者从零搭建开发环境、运行本地Demo、理解模型架构,并完成数据处理与模型训练。该创新模型融合视觉、听觉与文本信息,实现更精准、接近人类理解的情感分析与推理,并附有完整的Python代码实现。

weixin_29094775的博客 418

android 的iconfont,IconFont的制作及在Android的使用

本文介绍的内容对应的Github项目地址:IconFontApp上一节提到,如果项目中很多自定义的图标,或者是各种不同来源的图标,我们可以通过对Iconify进行扩展来实现,但是在扩展之前我们需要制作自己的图标字体文件,那么图标字体文件该如何制作呢?这个可以试试Fontello、Icomoon或者IconFont吧!(制作图标字体的方法有很多,可以参考这里,本文主要介绍的是如何快速利用已有的图标制...

weixin_32775495的博客 534

安时积分法和开路电压法结合估算锂电池SOC

基于安时积分法和开路电压法结合的锂电池SOC估计Simulink仿真建模,利用安时积分法计算放电过程中的SOC,在搁置状态利用开路电压法进行SOC修正。

qq_39304296的博客 2558

Android应用开发之PNG、IconFont、SVG图标资源优化详解

PNG为位图,是由不同的排列和染色的像素点组成的图像,当放大位图时就能清晰的看见无数个小方块(像马赛克一样),所以位图的扩大实质是增加单个像素点的大小,故而导致在不同分辨率表现非常糟糕。 SVG为可缩放矢量图,它不会像位图一样因为缩放而让图片质量下降,他在不同分辨率的表现都一样清晰。 IconFont是WebFont形式的图标,你可以把他认为就是WebFont,该类东东的制作来自于SVG矢量图,所以它不会像位图一样因为缩放而让图片质量下降,他在不同分辨率的表现都一样清晰。 下面我们简单给出这几种格式图标素材

m0_64603743的博客 761

利用OrthoFinder做泛基因家族聚类分析

这条命令会将 Arabidopsis_thaliana.TAIR10.59_longest_trans.pep.fa 文件中的所有序列ID,去掉ID中的空格后面的部分,只保留 > 后第一个空格之前的基因ID,并将结果保存在 An1.fasta 文件中。muscle 是一种常用的多序列比对工具,用于基因组或蛋白质序列的比对。基因家族(Gene family),是来源于同一个祖先,由一个基因通过基因重复而产生两个或更多的拷贝而构成的一组基因,它们在结构和功能上具有明显的相似性,编码相似的蛋白质产物。

qq_64400864的博客 2755

大模型LoRA微调调参的实战技巧(持续更新)

本文主要介绍了大模型LoRA微调调参的实战技巧,希望对学习大语言模型的同学们有所帮助。 文章目录 1. 前言 2. 实战技巧

herosunly的博客 20万+

用java画安卓图标_在Android中使用字体图标(Icon Font)

主要内容做前端开发的人,对字体图标(iconFont)应该都不陌生(感到陌生的人自己去搜索普及下知识吧(  ̄┏_┓ ̄))。实际原理就是ICON打成字体,然后通过CSS设置字体的样式来生效。但是,这是在H5相关开发及其延伸开发时用到的。那么,原生Android开发中,应该怎么使用这些图标呢。下面就给大家介绍一下在Android原生开发中的使用方法。本方法基于Android Studio工程使用,Ec...

weixin_39995108的博客 261

科研级YOLOv8 Neck革新:HS-FPN模块赋能,让特征融合更高效且参数量直降100W的实战指南

在文件夹下新建HS_FPN.py,将上述和HS_FPN类的代码写入其中。这一步是为了让YOLOv8的代码架构能识别我们的自定义Neck模块。

FJN110的博客 153

在Android中使用字体图标(Icon Font)

主要内容 做前端开发的人,对字体图标(iconFont)应该都不陌生(感到陌生的人自己去搜索普及下知识吧(  ̄┏_┓ ̄))。实际原理就是ICON打成字体,然后通过CSS设置字体的样式来生效。 但是,这是在H5相关开发及其延伸开发时用到的。那么,原生Android开发中,应该怎么使用这些图标呢。下面就给大家介绍一下在Android原生开发中的使用方法。 本方法基于Android Studio工程使用,Eclipse的使用者请自行摸索,主要是assets的位置问题。 首先,准备好一个字体图标文件,一

freedomzcd的专栏 2035

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Android开发中使用Icon Font

IconFont字体不仅仅流行语Web开发,在移动开发中也渐渐的使用的范围更广泛。这里介绍在Android开发中使用icon font的代码和方法。 应用步骤: 1、第一步:复制字体文件到项目 assets 目录; 2、第二步:打开 iconfont 目录中的 demo.html,找到图标相对应的 HTML 实体字符码; 3、第三步:打开 res/values/st

viclee 8771

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

android 使用字体图标(Icon Font)

android 使用字体图标(Icon Font) 转载请注明出处: 介绍字体图标是指将图标做成字体文件(.ttf),从而代替传统的png等图标资源。使用字体图标的优点和缺点分别为: 优点: 1. 可以高度自定义图标的样式(包括大小和颜色),对于个人开发者尤其适用 2. 可以减少项目和安装包的大小(特别你的项目中有很多图片icon时,效果将是M级) 3. 几乎可以忽略屏幕大小和分

Jimi_Wu的专栏 9931

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

在Android开发中使用icon font的代码和方法

在Android开发中使用icon font的代码和方法

dreamlivemeng的博客 1188

android使用icon font字体代替图片

原文链接 : http://www.codefrom.com/c/249 准备工作 首先给出我看的比较多两个网站: icomoon https://icomoon.io/app/#/select 阿里icon font字库 http://www.iconfont.cn/ 字体图标在Web端使用的比较多了,而关于在Android上使用Icon Font可

luomoBM的博客 1139

Icon Font --Android图标也能轻松换肤

长期以来,android碎片化极为严重,各种屏幕尺寸,分辨率,可以说是android开发者最为头疼的问题,当然,google也提出了各种适配方案,提供了各种分辨率的drawable文件夹,单位转换(如dp,sp)等等,其实单位转换都好说,图片资源适配问题最为严重,如果弄好多套图片资源,开发成本极高,apk大小也是个问题,实际上也很少这样做,一般弄一套标准的图片资源(xdpi)小手机上压一下,大屏幕手

djk_dong的专栏 1994

android使用字体图标,在Android开发中使用icon font的代码和方法

IconFont字体不仅仅流行语Web开发,在移动开发中也渐渐的使用的范围更广泛。这里介绍在Android开发中使用icon font的代码和方法。应用步骤:1、第一步:复制字体文件到项目 assets 目录;2、第二步:打开 iconfont 目录中的 demo.html,找到图标相对应的 HTML 实体字符码;3、第三步:打开 res/values/strings.xml,添加 string ...

weixin_29944883的博客 504

react-native Android使用阿里icon font图标

1.先下载文件下来 2.把下载文件解压,放到Android/app/src/main/assets/fonts,没有就自己新建文件夹 3.直接用

qq_42907330的博客 297

android 图标 icons,Android Icons | Developer Icons 2 + Icon Font | Open Source

ai-achievement0xe824ai-plus0xe81bai-alarm0xe8c0ai-amazon0xe8d2ai-anchor0xe820ai-android0xe818ai-armchair0xe861ai-arrow-down0xe829ai-arrow-left0xe826ai-arrow-left-down0xe82cai-arrow-left-up0x...

weixin_33982972的博客 553

Android自定义View使用Icon Font中遇到NewStringUTF的解决过程

原文地址:http://www.codefrom.com/c/249 当我第一次接触到Icon Font时,我就喜欢上了它。用字体文件取代图片,对于个人开发者或者缺少UI的项目,无疑是雪中送炭!本文将对自己在Android开发中使用Icon Font遇到的问题及解决方法做一个记录,同时希望能够帮助可能有需要的你。 准备工作 首先给出我...

weixin_34279579的博客 170

icommon icon font 在android4.1版中不显示的问题解决方法

由于系统编码和icommon 的icon font 的十六进制编码回发生一些冲突,导致在安卓低版本中不显示的问题。主要是以e6开头的图片字体的十六进制 不显示。 解决方法: 方法一、直接在icommon官网将不显示的图片字体的十六进制编码改掉,e6开头的十六进制  方法二、icommon官方已经发布了新的版本,使用新版本即可。

linuxzxl的专栏 864

android 字体文件压缩,Android创建assets文件夹并使用字体图标(Icon Font)

首先我们要知道如何在AS中新建引用assets文件1.将项目切换到Project模式Project.png2.要注意assets文件夹要跟Java文件在同一目录下,都包含在main的文件下面。image.png3.右键单击main目录,选择New>Folder>Assets Folder.image.png4.这样就创建成功assets文件夹,可以开始我们使用字体图标image.png...

weixin_39986435的博客 653

Android kotlin ui框架,kotlin--快速实现App框架

前言加入Adroid开发这个阵营已经快两年了,一直使用Java开发,之前也学过Kotlin,但并没有真正运用于项目实践,Kotlin在实际使用中还是有利有弊的,习惯使用Java开发来说,Java更顺手。最近重温Kotlin,下面的Demo是利用实现App的框架,即所谓底部导航。效果图开始底部导航我们采用ViewPager+Fragment实现,具体看代码。MainActivity的布局activi...

weixin_31542739的博客 1283
上一篇: Android 6.0 动态权限机制
ZSunlight
博客等级 码龄12年 0粉丝 2原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值