`
izuoyan
  • 浏览: 9221597 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

MIDP中处理文字的换行

阅读更多

作者:禹俊 文章来源:www.sf.org.cn

在游戏中,尤其是情景类的游戏当中,往往需要大量情节介绍的文字。要在小小的手机屏幕上显示这些文字,就必须对这些文字进行处理,使其能正确的换行,显示在你想要显示的宽度的范围内。下面我就会详细的介绍如何处理文字的换行。

首先应该计算需要换行的位置。这里我们以文字需要显示的宽度linewd,和“\n”为换行的标志

static public int ChangLine(String str, Font font, int linewd, boolean fullword)
{ // 计算需要换行的位置 str:需要显示的文字 font:文字的字体 linewd:需要显示的宽度
int len = 0, wd = 0;
for (int i = 0; i < str.length(); i++)
{

if (str.charAt(i) == '\n')
{
if (i == 0)
return len + 1;
else
return len + 2;
}
wd += font.charWidth(str.charAt(i));
if (wd > linewd)
{
if (fullword)
{
for (int j = len; j >= 0; j--)
{
if (str.charAt(j) < 0x30 || str.charAt(j) >= 128)
{
len = j;
break;
}
}
}
return len + 1;
}
len = i;
}
return 0;
}

计算好位置后,就开始为文字分行。

static public void DoLine(String infostr, int len)

{ // 为字符串分行,以便于显示
String tmpStr;
Vector InfoLines = null;
InfoLines = new Vector();
int tmpint; //需要换行的位置
while (true)
{
tmpint = ChangLine(infostr, DefaultFont, len, false);
if (tmpint == 0)
{
InfoLines.addElement(infostr);
break;
}
else
{
if (infostr.charAt(tmpint - 1) == '\n')
tmpStr = infostr.substring(0, tmpint - 1);
else
tmpStr = infostr.substring(0, tmpint);

InfoLines.addElement(tmpStr);
infostr = infostr.substring(tmpint, infostr.length());

}
}
}

以上就是处理文字分行的代码。接下来我讲介绍程序中制作文字的滚屏效果。请关注后续文章

{ // 为字符串分行,以便于显示
String tmpStr;
Vector InfoLines = null;
InfoLines = new Vector();
int tmpint; //需要换行的位置
while (true)
{
tmpint = ChangLine(infostr, DefaultFont, len, false);
if (tmpint == 0)
{
InfoLines.addElement(infostr);
break;
}
else
{
if (infostr.charAt(tmpint - 1) == '\n')
tmpStr = infostr.substring(0, tmpint - 1);
else
tmpStr = infostr.substring(0, tmpint);

InfoLines.addElement(tmpStr);
infostr = infostr.substring(tmpint, infostr.length());

}
}
}

以上就是处理文字分行的代码。接下来我讲介绍程序中制作文字的滚屏效果。请关注后续文章

分享到:
评论

相关推荐

    j2me低级界面字符串自动换行代码包

    标题中的“j2me低级界面字符串自动换行代码包”指的是在Java 2 Micro Edition (J2ME)平台上,针对图形用户界面(GUI)开发的一种解决方案,它涉及到字符串处理和显示,特别是在有限的屏幕空间内自动进行换行。...

    高效MIDP编程中文版

    3. **事件处理**:MIDP中的事件模型是理解和实现交互性的重要部分。书籍会教授如何处理用户的触摸和键盘输入,以及如何响应系统事件,如网络连接状态的变化。 4. **数据存储**:由于资源有限,MIDP通常使用简单持久...

    Midp2Exe Midp2Exe

    4. Midp2Exe将处理这些文件,并生成可执行的.exe文件。 5. 测试生成的exe文件,确保在目标平台上正常运行。 需要注意的是,转换过程可能会导致应用的体积增大,因为包含的运行时环境和额外的库文件。此外,由于Java...

    J2me_midp2_0_souce_code.rar_com/sun/midp/jadto_j2me PublicKey_mi

    MIDP 是 J2ME 中的一个关键组件,提供了创建移动应用程序的框架和 API,使得开发者可以为移动设备编写功能丰富的应用。 `com/sun/midp/jadto` 这个标签暗示了源代码可能包含 JAD (Java Application Descriptor) ...

    android平台中使用j2me MIDP2.0中GameAPI

    开发者需要理解Android的绘图机制和事件处理模型,以便将MIDP 2.0的Game API有效地融入到Android环境中。同时,不断学习和掌握Android原生的Game Development Kit (GDK)或第三方库(如Unity、Cocos2d-x等),可以...

    J2ME MIDP 手机游戏程序设计

    J2ME MIDP 手机游戏程序设计.isoJ2ME MIDP 手机游戏程序设计.isoJ2ME MIDP 手机游戏程序设计.isoJ2ME MIDP 手机游戏程序设计.isoJ2ME MIDP 手机游戏程序设计.isoJ2ME MIDP 手机游戏程序设计.isoJ2ME MIDP 手机游戏...

    深入MIDP2.0(2) - CLDC与MIDP工具类别

    1. **MIDlet**:MIDP中的应用程序单位,类似于Java中的JAR文件,由一个或多个Java类组成,这些类实现了MIDP API。MIDlets可以在CLDC设备上运行,并通过MIDP的生命周期管理。 2. **用户界面(UI)组件**:MIDP2.0...

    J2me中文教程MIDP2.0

    在MIDP 2.0中,开发者可以利用更丰富的UI组件来创建动态的用户界面。例如,`Form` 类允许将多个组件组合在一起,而 `Command` 和 `CommandListener` 接口则用于处理用户的命令操作。 ##### 2. 多媒体集成 MIDP 2.0...

    深入剖析midp 2.0

    在深入了解MIDP 2.0(Mobile Information Device Profile)及其底层架构CLDC(Connected Limited Device Configuration)的过程中,我们首先需要关注的是MIDP如何为移动设备提供了一套完整而强大的应用程序框架。...

    Java MIDP开发实例集.rar

    6. 应用程序生命周期管理(Application Lifecycle):MIDlet是MIDP中的核心应用程序类,它具有启动、暂停、恢复和终止等状态,帮助开发者管理应用程序的不同阶段。 在"codesc.net"这个文件中,很可能包含了多个...

    J2ME的MIDP游戏开发毕业论文

    3.1 MIDP中的游戏API 9 3.2 游戏类构成 9 3.2.1 Boxer类的实现 10 3.2.2 GameCanvas类的功能及特点 10 3.2.3 Sprite类的功能及特点 11 3.3游戏角色的处理 11 3.4 游戏中的事件处理 12 3.4.1 key Pressed方法 12 ...

    midp4palm-1_0

    "Midp4Palm-1_0" 是一个针对Palm设备的Java ME(Micro Edition)平台实现,它使得开发者可以使用MIDP(Mobile Information Device Profile)2.0规范来开发应用程序,并在Palm OS操作系统上运行。MIDP是Java ME的一...

    midp2.0教程

    #### 核心知识点一:MIDP2.0在手机游戏开发中的角色与优势 MIDP2.0(Mobile Information Device Profile 2.0),作为Java ME(Java Micro Edition)的一部分,专为资源受限的移动设备设计,如手机、PDA等,提供了...

    j2me的midp2.0所有源代码

    通过研究这个源代码包,开发者可以学习到如何有效地利用MIDP 2.0 API创建移动应用,理解Sun公司(现在是Oracle公司)的设计理念,包括如何优化性能、处理有限的内存和屏幕大小,以及如何在资源受限的环境中实现高...

    MIDP 2.0 TheGame API

    5. **多媒体支持**:增强了音频和图像处理能力,能够更好地处理游戏中的声音和动画效果。 **TheGame API** 是MIDP 2.0中专为游戏开发设计的一系列类和接口。它可能包括以下组件: - **GameCanvas**:一个特殊的...

    midp2.0 API 包含 NokiaUI

    - `javax` 文件夹可能包含了Java标准库中的扩展,比如Java Micro Edition的特定包,如`javax.microedition.*`,这包含了Midp2.0 API的接口和类。 - `java` 文件夹可能包含了Java基础类库,如`java.lang.*`、`java....

    J2me游戏开发包MIDP2使用示例

    MIDP 2.0版本带来了许多改进,包括更丰富的用户界面组件、更强大的图形处理能力和对多媒体的支持,使得开发者能够构建更复杂、更具吸引力的游戏。 在J2ME游戏开发中,MIDP2.0游戏开发包扮演了至关重要的角色。它...

    MIDP2.0讲座

    MIDP2.0提供了Record Management System (RMS)来处理本地数据存储。开发者可以创建记录存储区,用来保存用户数据或应用状态。 **6. 应用程序生命周期管理** MIDP定义了应用程序的启动、暂停、恢复和终止等生命周期...

    MIDP1.0开发者指导

    1. **理解基础**:首先,你需要了解Java编程基础,包括语法、面向对象编程以及异常处理。 2. **掌握MIDP API**:深入学习MIDP1.0提供的类和接口,例如 javax.microedition.lcdui 和 javax.microedition.midlet。 3...

Global site tag (gtag.js) - Google Analytics