`
doll
  • 浏览: 83222 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Blackberry上实现文字滚动效果

阅读更多
如果文字太长 又不想换行的话 可以用文字滚动效果。
下面是代码:
LabelField testLabel = new LabelField(
			"I swear to god up in the sky I will be your shelter when you cry Cause you are my everything.",
			Field.FOCUSABLE) {
		int currentChar = 0;
		String currentText = null;
		Font ourFont;
		private Timer _scrollTimer;
		private TimerTask _scrollTimerTask;

		protected void paint(Graphics graphics) {
			currentText = this.getText();
			if (currentChar < currentText.length()) {
				currentText = currentText.substring(currentChar);
			}
			graphics.drawText(currentText, 0, 0, DrawStyle.ELLIPSIS, Display
					.getWidth());
		}

		protected void layout(int width, int height)  {
			ourFont = this.getFont();
			setExtent(Display.getWidth(), ourFont.getHeight());
		}

		protected void onDisplay() {
			startScroll();
		}

		protected void onUnfocus() {
			startScroll();
		}

		private void startScroll() {
			// Start scrolling
			final String fullText = this.getText();
			if (_scrollTimer == null) {
				_scrollTimer = new Timer();
				_scrollTimerTask = new TimerTask() {
					public void run() {
						currentChar = currentChar + 4;
						if (currentChar > fullText.length()) {
							currentChar = 0;
						}
						invalidate();
					}
				};
				_scrollTimer.scheduleAtFixedRate(_scrollTimerTask, 500, 500);
			}
		}

		protected void onFocus(int direction) {
			if (_scrollTimer != null) {
				_scrollTimerTask.cancel();
				_scrollTimer.cancel();
				_scrollTimer = null;
				_scrollTimerTask = null;
			}
		}

		protected boolean navigationMovement(int dx, int dy, int status,
				int time) {
			currentText = this.getText();
			int oldCurrentChar = currentChar;
			if (Math.abs(dx) > Math.abs(dy)) {
				// horizontal scroll
				if (dx > 0) {
					currentChar = Math.min(currentText.length() - 1,
							currentChar + 1);
				} else if (dx < 0) {
					currentChar = Math.max(0, currentChar - 1);
				}
				if (oldCurrentChar != currentChar) {
					this.invalidate();
				}
				return true;
			} else {
				return super.navigationMovement(dx, dy, status, time);
			}
		}
	};


Demo工程也上传吧
分享到:
评论
3 楼 michael_wang 2010-10-11  
留个脚印 
2 楼 doll 2010-03-07  
女巫の微笑 写道
谢谢  真是帮忙了

能帮你我很高兴 不用客气
1 楼 女巫の微笑 2010-03-04  
谢谢  真是帮忙了

相关推荐

    老黑莓OS经典软件合集大全,独家整理,适合黑莓blackberry 7XXX 8XXX 9XXX等黑莓老机型.zip

    老黑莓OS经典软件合集大全,独家整理,适合黑莓blackberry 7XXX 8XXX 9XXX等黑莓老机型,格式为cod , alx,jad等格式;;怀旧经典,软件清单如下 Twitter70.zip WacaiBlackberry.zip [BerryCN.com_DZH_v5.18] XECurrency-...

    黑莓blackberry Anyview

    黑莓blackberry阅读工具 支持格式txt

    7290 bb blackberry黑莓

    7290 bb blackberry黑莓7290 bb blackberry黑莓7290 bb blackberry黑莓7290 bb blackberry黑莓7290 bb blackberry黑莓7290 bb blackberry黑莓7290 bb blackberry黑莓7290 bb blackberry黑莓7290 bb blackberry黑莓...

    黑莓UI指导 Blackberry UI Guidelines

    【黑莓UI指导 Blackberry UI Guidelines】是一份关于如何为黑莓手机开发用户界面的指南,旨在帮助开发者创建更符合黑莓用户习惯的界面。该文档由非开发者个人翻译,虽然可能存在翻译不准确之处,但仍能提供基本的...

    黑莓桌面管理器 BlackBerry Desktop Manager 5.0.1 B73多国语言版

    黑莓桌面管理器(BlackBerry Desktop Manager)是为黑莓设备设计的一款桌面软件,旨在帮助用户更高效地管理其黑莓手机上的数据与应用程序。通过该软件,用户能够轻松实现数据同步、备份以及恢复等功能。本篇文章将...

    qq-blackberry.zip 黑莓QQ

    黑莓QQ是腾讯公司针对黑莓操作系统的智能手机开发的一款即时通讯软件,允许用户在黑莓设备上实现与PC版QQ类似的聊天、文件传输等社交功能。 【描述】"qq-blackberry.zip 黑莓QQ" 的描述简洁明了,表明这个压缩文件...

    blackberry chinese黑莓 中文

    本文将详细讲解如何在黑莓设备上设置和使用中文输入法。 1. **输入区域设置(Input Locale)** 黑莓手机支持多语言输入,包括中文。在设置中找到“Options”(选项),然后进入“Localization”(本地化),在此处...

    黑莓 blackberry

    - 学习快捷键操作能显著提高效率,例如用空格键快速选中文字,或使用键盘上的数字键进行屏幕滚动。 - 利用BlackBerry Assistant进行语音命令控制,进行日程安排、搜索信息等操作。 8. **常见问题与解决** - 更新...

    黑莓版QQ_1.0.2.95_blackberry_beta

    《黑莓版QQ_1.0.2.95_blackberry_beta》应用程序的发布,标志着即时通讯软件在黑莓平台上的重要里程碑。作为一款针对黑莓手机用户量身打造的社交软件,它不仅提供了QQ这一流行即时通讯工具的核心功能,还针对黑莓...

    超简单三步实现黑莓当猫,让您的笔记本随时随地轻松实现无线上网

    借助附件中的工具将可以最简单实现用黑莓当猫,让您的笔记本随时随地轻松实现无线上网。...经过这样简单的三步,您的笔记本就可以借助黑莓实现无线上网了,我在本机上测试过,速度还相当不错(使用CMNET接入点)

    黑莓手机usb驱动(BlackBerry USB Driver)

    黑莓usb驱动是一款黑莓手机专用驱动,已经装了桌面管理器的电脑就不需要安装了。没有装桌面管理器,又想访问TF卡,装这个就可以了。驱动介绍相信大家在第一次使用黑莓手机连接电脑的时候都出现了没有反应的问题了,...

    黑莓blackberry8700g游戏软件经典集合

    黑莓Blackberry 8700g是一款经典的智能手机,它在2006年推出,以其独特的全键盘和优秀的电子邮件功能赢得了商务人士的青睐。这款手机不仅在通信和办公方面表现出色,还拥有一定的娱乐功能,包括游戏和各种实用软件。...

    黑莓开发学习入门系列,自己动手实现一个日历软件源码

    1. **日期和时间处理**:在BlackBerry平台上,开发者需要使用`java.util.Calendar`类或者BlackBerry特有的日期时间API来处理日期和时间,同时考虑到农历的支持,可能还需要引入第三方库或自定义算法来实现农历转换。...

    黑莓XMPP客户端实现参例

    在黑莓平台上实现XMPP客户端可以帮助用户与使用相同协议的服务进行交互,例如Google Talk、Jabber等。本示例将深入探讨黑莓XMPP客户端的实现细节。 首先,黑莓开发主要使用BlackBerry Java SDK,因此我们的XMPP...

    黑莓桌面管理器4.2

    无论是官方的BlackBerry App World应用还是第三方的黑莓应用,都可以通过桌面管理器一键完成安装,无需在手机上手动操作,大大提高了效率。 3. **备份与恢复** 安全性是黑莓设备的一大亮点,桌面管理器4.2提供了...

    BlackBerry(黑莓)开发入门教程最新版

    4. **签名和打包**:应用开发完成后,需要通过BlackBerry签名工具进行签名,然后打包成jad和cod文件,才能在真实设备上安装运行。 ### 五、BlackBerry模拟器使用技巧 1. **安装模拟器插件**:模拟器可以模拟各种...

    Blackberry 上显示动态 GIF 图片

    然而,通过一些技术手段,开发者可以实现动态GIF图片在Blackberry设备上的显示。这篇博客文章(链接:https://doll.iteye.com/blog/564222)可能详细介绍了如何通过编程实现这一功能。 首先,我们需要理解GIF文件...

    黑莓9900可用微博

    标题“黑莓9900可用微博”表明我们讨论的主题是关于如何在黑莓9900智能手机...这使得黑莓用户也能享受微博带来的社交体验,尽管它可能不是原生的微博应用,但通过第三方开发者适配,仍然能在黑莓平台上实现类似的功能。

Global site tag (gtag.js) - Google Analytics