文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程J2EE/J2MEMIDP终端模拟之三:MIDP 的自定义字体
精品推荐
特别推荐
·J2EE Web开发技术期待一次新的技术变革
·J2ME程序开发初学者快速入门的九大要点
·使用技巧:J2ME中程序优化的十个小方法
·RMS从入门到精通之一
·J2EE应用程序中SQL语句的自动构造方法
·解决J2EE系统应用性能问题常用优化项目
·J2EE实用技巧:提升JSP应用程序的绝招
·J2ME内存优
·J2ME简介
·J2EE技术
热点TOP10
·JBoss 文档(三) JBoss和JMS
·基于MIDP1.0实现通信录
·3D数学知识简介
·第一个Spring MVC程序
·配置Eclipse进行远程调试
·jBPM实例化一个流程
·JBoss4.0.2集群指南
·基于J2EE的Blog平台
·EJB 3.0简介
·FC API(JSR 75)简单讲解
·介绍J2ME可选包WMA(JSR120)
·MIDP终端模拟之一:一个简单的模拟器MIDlet
·使用platformRequest()自动更新MIDlet套件
·Spring 系列:进入 Spring MVC
·从自定义字节数组创建图片
·调整压力测试工具
·基于Java的Web服务器工作原理(三)
·实例-用JSF实现文件下载
·经典飞机游戏代码S60
·Spring 系列:Spring JMS 消息处理

MIDP终端模拟之三:MIDP 的自定义字体

日期:2007年5月11日 作者: 查看:[大字体 中字体 小字体]



  下载 项目源代码

在本系列的第 1 部分中,我们通过构建了一个终端模拟器来探讨了 MIDP 对于网络化应用程序的潜力。第 2 部分重点介绍了构建一个好的用户界面来使 MIDTerm 成为一个良好交互的应用程序。在第 3 部分中,我们将通过利用 MIDP 的呈现自定义字体的功能来增加一些修饰和对外观的一些急需的控制。

首先我们讨论对字体的内建支持的优势和限制,并且确定哪种应用程序可能需要自定义字体。然后介绍一下实现您自己的字体的技巧,并将其正确地应用于终端模拟器 MIDlet 中。

内置字体

使用 MIDP 的 Graphics 类,可以调用其 setFont() 来指定字体,然后调用该字体的一种 drawChar() drawString() 方法来在 canvas 或后台图像上呈现字体。MIDP 仅提供了一套有限的字体选项,但是:字体可以是等宽的或成比例的,大小可以是小、中或大,并且样式可以是平铺或粗体、斜体和下划线的任意组合。运行库实现工具可能没有满足您的标准的字体,它会将自由返回其确定的最相近的字体。

大多数的应用程序都能容许这些限制。不管怎样,应用程序开发人员都希望将其溶入主机平台的外观和风格中。为使操作简单,MIDP 2.0 提供了一个新的 getFont() 方法,提供一般地用于绘制静态文本(如标题和标签)的字体,以及用于绘制用户在文本框中输入的字符的字体。您可以确信这些字体存在,尺寸正确并与应用程序的其余部分一致。当调节给定字体的高度、宽度和基线,以及在运行时适当调整用户界面时,应用程序应能够在不同种类的设备上正确地运行。

然而一些应用程序需要对它们的外观进行更多的控制。例如,大多数游戏需要一种与其图形其他部分的风格相一致的字体。一些平台可能存在特定的问题:当需要等宽字体时可能返回成比例字体,最小的字体可能太大了,并且一些字体可能不吸引人甚至无效。这些差异增大了创建和维护跨平台软件的难度。

MIDTerm 就是这种情况。我们需要确保其字体等宽的、足够小以便在屏幕上能绘制最多的行和列并且清楚可读,但在这一点上,绘制终端内容的 canvas 取决于设备实现。如果给定字体过大终端将不可用,并且如果字体不是等宽的,应用程序根本就不能工作。在我们的项目的这一点上,MIDP 模拟器返回的字体是等宽的且大小合适,但字体不是特别容易阅读。

实现自定义字体将提供所需的字体控制,以便增强对 MIDterm 可用性的信心。同样重要的是,因为不再依赖于每个平台的本地字体实现方式,其跨不同的 MIDP 设备的性能将更具可预见性。

完成后,就会看到改进:

Before: Built-in Font
After: Custom Font
MIDP终端模拟之三:MIDP 的自定义字体(图一) MIDP终端模拟之三:MIDP 的自定义字体(图二)

创建自定义字体

字体有两个来源:

  • Outline 字体:包含绘制每一个字符所需的指令。这些指令是精确的、冗长的且复杂的,但它们允许操作系统以任何尺寸和任何样式来呈现字体。
  • Bitmap 字体:仅通知操作系统对于每个字符哪些像素处于开状态,哪些像素处于关状态。它们是简单明了,但对于所支持的字体的每一种大小和样式都需要一个独立的指令集。

移动设备有限的处理能力使其无法使用 outline 字体。这些设备自然要使用 bitmap 字体,也正是我们将使用的。操作系统呈现我们的实现时不像内置字体那样快,但为达到对字体外观的绝对控制,这样的时间牺牲能够为人们所接受。

bitmap 字体的绘制指令是位到图形环境中的位置的逐一映射。bitmap 字体中的每一个字符对应于从内存拷贝到屏幕的像素排列。换一种说法,每一个字符是通过拷贝到屏幕的一个后台图像来绘制的。从这个角度看,立即就能得到字体的定义(包含用于呈现字体的指令的文件)本身就可以是一个压缩格式(如 PNG 或 JPEG)的图像文件。我们可以把这个图像读到内存中,然后在需要绘制我们的字体的字符时,将它的各有关部分拷贝到屏幕。

那么第一步就是要创建一个这样的图像。在台式计算机,使用您最喜欢的图像编辑器来创建一个新的文档。该文档的高度应当就是字体所需的高度,并且足够宽来容纳要呈现的字符集中的每一个字符。那是多宽呢?

Java 技术通常采用 Unicode Character Standard。Unicode 字符集有 95,000 多个字符,比我们能提供的要多,并远远超出我们的需要!因此 MIDTerm 的 Telnet 协议的实现方式是基于 7 位 ASCII 字符集的基础上,该字符集只包含 128 个字符。因为 MIDTerm 需要等宽字体,文档宽度应为一个字符宽度的 128 倍。例如,如果每一个字符高为 12 像素宽为 10 像素,为容纳所有的 128 个字符,则需要高为 12 宽为 1,280 的图像。


[1] [2] [3] [4] [5] 下一页 




上一篇:利用HSQLDB 进行Hibernate单元测试

下一篇:MIDP终端模拟之二:高级终端模拟

MIDP终端模拟之三:MIDP 的自定义字体 相关文章:
·Windows 2003安全设置大全-IIS、终端服务、FTP、SQL的配置
·模拟城市4 - 游戏攻略
·英文字体创意设计及应用作品欣赏
·模拟城市4-心得汇总 - 游戏攻略
·国内首发 韩国版QQ自定义头像
·模拟人生2-赚钱的职业 - 游戏攻略
·《海滨嘉年华(模拟度假村)》攻略
·进程调度模拟程序
·模拟女性运动时胸部颤动
·模拟城市4秘籍
MIDP终端模拟之三:MIDP 的自定义字体 相关软件:
·模拟城市3000(Sim City 3000)简体中文版
·300多种中文字体
·微软雅黑字体
·素材字体-中国龙字库
·NDS《逆转裁判4 完美汉化简体中文版》模拟器
·《拳皇97》加强版 风云再起 模拟器
·模拟城市4000 (simcity4000)简体中文硬盘版
·《模拟人生2》破解马赛克补丁
·整形模拟软件_非常face V1.0
·模拟人生 2

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot