文档章节

Android多分辨率适配实践【1】使用字体图标(内含两枚神器)

 刘星石
发布于 2016/03/02 15:57
字数 1151
阅读 49
收藏 5
点赞 1
评论 0
目录

Android多分辨率适配实践【0】基础适配篇(撰写中)
Android多分辨率适配实践【1】使用字体图标,精准控制不同分辨率的图标样式(内含两枚神器)
Android多分辨率适配实践【2】Iconify中文使用说明
Android多分辨率适配实践【3】Iconify扩展,自制或导入SVG字体图标库(撰写中)
...
大约每周一篇的频率更新,算是学习实践笔记,喜欢请关注哦。


为什么要使用字体图标,字体图标的好处

一个优秀的开发者应该会很讨厌浪费时间在琐碎的事情上,比如为APP中的每个图标都制作并拷贝5种 (ldpi, mdpi, hdpi, xhdpi, xxhdpi) 尺寸的图片, 并把它们正确地放到5个不同的drawable目录,并且在想要改变颜色或者大小的时候重新重复这烦人的一切。而且在需要他们缩放的时候,一不留神图像就糊掉。
实际上在网页前端这个行当里面早就面临过类似的问题并且头疼过很久,考虑过不少方法(大图CSS缩小显示、类Android思路的多套图标适配、SVG矢量等)。经过他们实践出来了一种比较好的解决方案——图标字体化。在Android开发里面,也是完全适合采用这种方案的!
甚至除了减少文件体积和可轻易缩放外,字体图标还带来了额外的优点——

  • 轻易改变颜色

  • 轻易产生阴影

  • 动画支持

如何使用字体图标

字体图标是以字体的形式存在的,所以使用字体图标的第一步是先要找到这些字体,在后面我会提到去哪找甚至怎么自己制作。这里先关注如何使用。在Android上使用字体图标本来是不如网页方便的,但我们有神器——

神器1:越来越赞的Iconify

Iconify是一个让你在文本、ActionBar, 以及 EditTexts中轻易使用图标字体的开源库,并自带了海量字体图标合集(前端常用的FontAwesome, Entypo, Typicons等图标全都集成进去了)。上个月刚发布v2版,作者给v2版写的更新介绍Iconify just got a lot better本身就是最好的使用教程。或者看这篇可能是最好的中文说明(撰写中,喜欢请关注)
它允许这样的编程:

<IconTextView       android:text="Welcome {fa-smile-o} {fa-hand-peace-o} !"     android:shadowColor="#22000000"     android:shadowDx="0"     android:shadowDy="5"     android:shadowRadius="1"     android:textSize="30sp"     android:textColor="#2A9BDA"     ... />

IconTextView会将所有的{..}替换为对应的图标。这些图标的特性跟字体/Text是一模一样的,你可以控制它的颜色,大小,阴影。而且无论多大,都不会糊掉!上面的代码{fa-smile-o}等是来自FontAwesome的图标,你还可以把它用在TextView, Button,甚至ToolBar菜单中(使用IconDrawable)。

效果

 

它看起来是这样的,很棒对吧,不需要处理任何图片哦!

对了,它本身就集成了多个图标库,连MaterialDesign图标都提供了!

噢,对了,它还支持旋转!
现在你还有什么理由不使用它么?快来10分钟入门(撰写中,喜欢请关注)

所以它的原理是什么?

图标并不是真正的图片,而是特殊的字体,有一个特殊的编码, Iconify 为所有的IconTextView准备好这些字体,并且将{...}的部分映射到对应的字体。
uf039 <- fa_align_justify
uf036 <- fa_align_left
uf038 <- fa_align_right
uf270 <- fa_amazon
uf0f9 <- fa_ambulance
....

神器2:阿里巴巴图标库

在Iconify中没找到合适的图标怎么办?Iconify是支持导入自己的字体的。详细方法可以参照Android多分辨率适配实践【3】Iconify扩展,自制或导入SVG字体图标库(撰写中,喜欢请关注)。然后去哪里找字体呢?网上搜一下字体图标库会找到很多,这里强推阿里巴巴图标库,是中国第一个最大且功能最全的矢量图标库。

至此,万标俱备,快去得瑟吧!

问啊-定制化IT教育平台,牛人一对一服务,有问必答,开发编程社交头条 官方网站:www.wenaaa.com

QQ群290551701 聚集很多互联网精英,技术总监,架构师,项目经理!开源技术研究,欢迎业内人士,大牛及新手有志于从事IT行业人员进入!


本文转载自:http://www.kuqin.com/shuoit/20150911/348005.html

共有 人打赏支持
粉丝 16
博文 142
码字总数 13945
作品 0
天津
android多分辨率多屏幕密度下UI适配方案

前言 Android设计之初就考虑到了UI在多平台的适配,它本身提供了一套完善的适配机制,随着版本的发展适配也越来越精确,UI适配主要受平台两个因素的影响:屏幕尺寸(屏幕的像素宽度及像素高度...

geeksu
2014/08/20
0
0
Andriod界面设计适配和Android Studio中的资源

Android的碎片化已经被喷了好多年,随着国内手机厂商的崛起,碎片化也越来越严重,根据OpenSignal的最新调查,2014年市面上有18796种不同的Android设备,作为开发者,一个无法回避的难题就是...

一配
2015/07/14
0
3
android各种分辨率的单独适配

以我新建的一个标准测试程序为例, (1)src ——源代码(Source)管理节点。 (2)gen——自动生成(Generated)的文件点。 (3)Referenced Libraries——工程的参考库管理节点。 该节点主...

今日竹石
2014/01/22
0
0
Android屏幕适配全攻略(最权威的官方适配指导)

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因...

程序袁_绪龙
2015/07/21
0
0
浅谈Android 适配问题(如分辨率,多语言,字体问题)

众所周知,Android开发的一大难点就是对各种机型的适配问题(在此说明我所说的都只是针对phone版本而不是针对pad版本);国内厂商多如牛毛,手机山寨屏幕更是层出不穷,多分辨率适配成了大多数...

ice_Anson
2013/07/21
0
0
一款APP,从设计稿到切图(Android篇)

原文出处:BATLCK 依旧声明:这里写的依旧只是某一种工作方法,而不是一种规范,你可以参考,但不要照搬,在具体工作中,一定要灵活运用。 汇总贴,整理了之前零散的关于Android的文章……这...

BAT_LCK
2015/12/03
0
0
Android初级第九讲之适配和调试

本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! Android适配需要考虑方方面面,主要是图片字体大小和API,但也要考虑其他场景下的一些问题。 先熟悉一下Android设备的dpi...

liuzxgeek
2016/12/14
0
0
Android获取屏幕分辨率及DisplayMetrics简介

Android 可设置为随着窗口大小调整缩放比例,但即便如此,手机程序设计人员还是必须知道手机屏幕的边界,以避免缩放造成的布局变形问题。 手机的分辨率信息是手机的一项重要信息,很好的是,...

liuher
2014/07/22
0
0
Android度量单位说明(DIP,DP,PX,SP)

(一)概念 dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。 px: pixels(像素...

sflfqx
2014/12/10
0
0
如何创建支持不同屏幕尺寸的Android应用(转载)

源地址:http://wiki.eoe.cn/page/SupportingDifferentScreens Supporting Different Screens Android用两种常规属性来分类设备屏幕:尺寸和像素密度。作为开发者,你应当预料到你的android应...

mutouzhang
2014/03/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

pbgo: 基于Protobuf的迷你RPC/REST框架

https://www.oschina.net/p/pbgo

chai2010
15分钟前
0
0
rsync工具介绍、常用选项以及通过ssh同步

linux下的文件同步工具 rsync rsync是非常实用的一个同步工具,可以从a机器到b机器传输一个文件,也可以备份数据,系统默认没有这个工具,要使用命令 yum install -y rsync 安装。 rsync的命...

黄昏残影
31分钟前
0
0
OSChina 周四乱弹 —— 表妹要嫁人 舅妈叮嘱……

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @哈哈哈哈哈嗝:一定要听——The Pancakes的单曲《咁咁咁》 《咁咁咁》- The Pancakes 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :...

小小编辑
今天
66
4
流利阅读笔记30-20180719待学习

重磅:让人类得老年痴呆的竟是它? Lala 2018-07-19 1.今日导读 去年奥斯卡最佳动画长片《寻梦环游记》里有一句经典台词:“比死亡更可怕的,是遗忘”。在电影中,年迈的曾祖母会重复说一样的...

aibinxiao
今天
3
0
1.16 Linux机器相互登录

Linux机器之间以密码方式互相登录 运行命令#ssh [ip address],标准命令:#ssh [username]@ip, 如果没有写用户名,则默认为系统当前登录的用户 命令#w查看系统负载,可查看到连接到该主机的...

小丑鱼00
今天
0
0
about git flow

  昨天元芳做了git分支管理规范的分享,为了拓展大家关于git分支的认知,这里我特意再分享这两个关于git flow的链接,大家可以看一下。 Git 工作流程 Git分支管理策略   git flow本质上是...

qwfys
今天
2
0
Linux系统日志文件

/var/log/messages linux系统总日志 /etc/logrotate.conf 日志切割配置文件 参考https://my.oschina.net/u/2000675/blog/908189 dmesg命令 dmesg’命令显示linux内核的环形缓冲区信息,我们可...

chencheng-linux
今天
1
0
MacOS下给树莓派安装Raspbian系统

下载镜像 前往 树莓派官网 下载镜像。 点击 最新版Raspbian 下载最新版镜像。 下载后请,通过 访达 双击解压,或通过 unzip 命令解压。 检查下载的文件 ls -lh -rw-r--r-- 1 dingdayu s...

dingdayu
今天
1
0
spring boot使用通用mapper(tk.mapper) ,id自增和回显等问题

最近项目使用到tk.mapper设置id自增,数据库是mysql。在使用通用mapper主键生成过程中有一些问题,在总结一下。 1、UUID生成方式-字符串主键 在主键上增加注解 @Id @GeneratedValue...

北岩
今天
2
0
告警系统邮件引擎、运行告警系统

告警系统邮件引擎 cd mail vim mail.py #!/usr/bin/env python#-*- coding: UTF-8 -*-import os,sysreload(sys)sys.setdefaultencoding('utf8')import getoptimport smtplibfr......

Zhouliang6
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部