首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > BlackBerry >

Blackberry下实现文字滚动效果

2012-09-22 
Blackberry上实现文字滚动效果如果文字太长 又不想换行的话 可以用文字滚动效果。下面是代码:LabelField te

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 scrollingfinal 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 scrollif (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工程也上传吧
能帮你我很高兴 不用客气  

热点排行