[Phonegap+Sencha Touch] 移动开发7、Sencha Touch图标的使用与自定义

2024-01-28 11:58

本文主要是介绍[Phonegap+Sencha Touch] 移动开发7、Sencha Touch图标的使用与自定义,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Sencha touch 2.2之前,图标都是通过 几张不同分辨率png格式的图片(适应不同分辨率的设备),加上css3样式-webkit-mask,实现的单色图标。
2.2之后,图标的实现方式,换成了"图标字体(icon font)"。如下图:

上面的这个list图标,就是Pictos字体里面的"l"字符,因为字体是矢量的,所以可以适应不同的分辨率,而且通过指定字体颜色,就可以更换图标的颜色

指定一个button使用图标,方法很简单,指定配置项iconCls就行了,如下:
{ xtype: 'button', iconCls: 'list' }

sencha touch默认已有的图标

sencha touch默认图标来自字体pictos
下图是pictos字体中的所有图标,红框内的是sencha touch已经包含在css里面的,直接就能用。
如果需要黑框内的图标,请在{webapp}/resources/sass/app.scss中添加。
比如我需要"anchor"这个图标,那我就在app.scss中加上"@include icon('anchor');",然后用compass compile编译css,之后才可用这个图标。

为了向下兼容,即兼容以前的sencha touch版本,下列图标有多个名字
left也可以用名字:arrow_left
right也可以用名字:arrow_right
up也可以用名字:arrow_up
down也可以用名字:arrow_down
inbox也可以用名字:organize、bookmarks
favorites也可以用名字:star
retweet也可以用名字:loop2
locate也可以用名字:maps
action也可以用名字:reply

这些图标和字符之间的对应关系可以看文件
\touch\resources\themes\stylesheets\sencha-touch\base\mixins\_Class.scss
里面的方法icon-character-for-name

自定义图标的方法

Sencha touch自带图标有限,有时需要自己添加图标。下面介绍自定义图标的方法:
首先需要生成图标字体。有许多网站提供在线生成图标字体的功能,比如IcoMoon,通过这个网站,你可以选择自己需要的图标,然后打包下载下来。

1、进入IcoMoon,看到如下图的页面,点击"Custom Built and Crisp Icon Fonts, Done Right"


2、选择需要的图标,点击下面的"Font>",即生成字体


3、点击"Download",即可下载


4、有了字体,我们就可以添加到我们的webapp中去了。
进入目录{webapp}/resources/fonts/(没有就创建),新建一个文件夹,比如"iconmoon",把第三步中下载的字体压缩包\fonts底下的四个文件解压到这个文件夹下。

5、记事本打开{webapp}/resources/sass/config.rb,添加下图的代码

提示: 因为我们加了一句 fonts_path, 最后生成css的时候可能会报错"Pictos fonts not found"。所以把 {webapp}/touch/resources/themes/fonts/pictos文件夹复制到{webapp}/resources/fonts/目录下。
这时候{webapp}/resources/fonts/目录下应该有如下结构:


6、记事本打开{webapp}/resources/sass/app.scss,添加下图的代码

'\e600'就是图标

7、重新编译生成新的app.css文件(将SASS, 即 scss 文件,编译成css文件)
进入cmd,执行:
编译css,需要compass这个命令行工具,执行gem install compass安装
cd {webapp}\resources\sass
compass compile
成功后会有如下提示,说明已成功生成新的app.css



总结:
  • 使用一个在线工具生成图标字体,如IcoMoon、Fontello
  • 将4个字体文件放到 {webapp}/resources/fonts/底下
  • 在config.rb中添加fonts_path,以便Compass编译的时候可以找到你的字体
  • 复制{webapp}/touch/resources/themes/fonts/pictos 到 {webapp}/resources/fonts,避免编译的时候找不到默认pictos字体而报错
  • 在app.scss中Import你的字体
  • Compass编译

这篇关于[Phonegap+Sencha Touch] 移动开发7、Sencha Touch图标的使用与自定义的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/653573

相关文章

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

C#中lock关键字的使用小结

《C#中lock关键字的使用小结》在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时,其他线程无法访问同一实例的该代码块,下面就来介绍一下lock关键字的使用... 目录使用方式工作原理注意事项示例代码为什么不能lock值类型在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时

PyQt5 GUI 开发的基础知识

《PyQt5GUI开发的基础知识》Qt是一个跨平台的C++图形用户界面开发框架,支持GUI和非GUI程序开发,本文介绍了使用PyQt5进行界面开发的基础知识,包括创建简单窗口、常用控件、窗口属性设... 目录简介第一个PyQt程序最常用的三个功能模块控件QPushButton(按钮)控件QLable(纯文本

MySQL 强制使用特定索引的操作

《MySQL强制使用特定索引的操作》MySQL可通过FORCEINDEX、USEINDEX等语法强制查询使用特定索引,但优化器可能不采纳,需结合EXPLAIN分析执行计划,避免性能下降,注意版本差异... 目录1. 使用FORCE INDEX语法2. 使用USE INDEX语法3. 使用IGNORE IND

C# $字符串插值的使用

《C#$字符串插值的使用》本文介绍了C#中的字符串插值功能,详细介绍了使用$符号的实现方式,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录$ 字符使用方式创建内插字符串包含不同的数据类型控制内插表达式的格式控制内插表达式的对齐方式内插表达式中使用转义序列内插表达式中使用