嗨,我已经通过此链接水平实现了滚动文本LabelField Marquee。但是我有一个问题,文本滚动的不错,但是它被覆盖在已添加的原始文本上。可以有人知道如何解决这个问题吗?我也尝试刷新视图invalidate()
但没用。我添加了我正面临的问题的屏幕截图。TextField横向滚动
任何帮助将是可观的。
谢谢。
嗨,我已经通过此链接水平实现了滚动文本LabelField Marquee。但是我有一个问题,文本滚动的不错,但是它被覆盖在已添加的原始文本上。可以有人知道如何解决这个问题吗?我也尝试刷新视图invalidate()
但没用。我添加了我正面临的问题的屏幕截图。TextField横向滚动
任何帮助将是可观的。
谢谢。
我会建议你改变paint方法来下一个:
public void paint(Graphics graphics) {
currentText = this.getText();
if (currentChar < currentText.length()) {
currentText = currentText.substring(currentChar);
}
graphics.drawText(currentText, 0, 0, DrawStyle.ELLIPSIS, 200);
}
所以不要在你的paint
调用super.paint()
。
我改写(以更简单的方式),你链接的答案。它工作正常。
import net.rim.device.api.ui.Graphics;
import net.rim.device.api.ui.Font;
import net.rim.device.api.ui.DrawStyle;
import java.util.Timer;
import java.util.TimerTask;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.container.MainScreen;
public class MyScreen extends MainScreen {
public MyScreen() {
super();
MarqueeLabel testLabel2 = new MarqueeLabel("This is a long long " +
"long long long long long long long long long long long " +
"long long marquee", Field.FOCUSABLE);
add(testLabel2);
}
class MarqueeLabel extends LabelField {
// Here MarqueeLabel code from your SO linked example
}
}
thankx @ Eugen.Thankx很多人:) ..它是我的错误,我在我的paint方法中调用了super.paint()。 – AkashG 2012-08-20 04:36:05
它工作很好,但它显示从中间到左侧的测试,我想这样做,文本应该从右向左移动甚至文本是小或大。我可以如何处理这段代码,你能帮助我吗? – Hasmukh 2012-11-09 11:13:45
查看源代码 - 将不同的字体设置为标签字段,而不是从0位置开始,并在每个滴答声右移4个符号,先用text.length()开始并向左移动4个符号(将+操作改为减号) 。如果您仍然有问题 - 请创建新主题 – 2012-11-09 12:28:17