こんにちは私はこのリンクLabelFieldMarqueeを介して水平方向にスクロールするテキストを実装しました。しかし、私には1つの問題があります。テキストはかなりうまくスクロールしていますが、追加された元のテキストに上書きされています。この問題に対処する方法を誰かが知っていますか?また、ビューを更新しようとしましたinvalidate()
が、役に立ちませんでした。私が直面している問題のスクリーンショットを追加しました。
どんな助けでもかなりあります。
ありがとうございました。
こんにちは私はこのリンクLabelFieldMarqueeを介して水平方向にスクロールするテキストを実装しました。しかし、私には1つの問題があります。テキストはかなりうまくスクロールしていますが、追加された元のテキストに上書きされています。この問題に対処する方法を誰かが知っていますか?また、ビューを更新しようとしましたinvalidate()
が、役に立ちませんでした。私が直面している問題のスクリーンショットを追加しました。
どんな助けでもかなりあります。
ありがとうございました。
ペイント方法を次の方法に変更することをお勧めします。
public void paint(Graphics graphics) {
currentText = this.getText();
if (currentChar < currentText.length()) {
currentText = currentText.substring(currentChar);
}
graphics.drawText(currentText, 0, 0, DrawStyle.ELLIPSIS, 200);
}
だからあなたのを呼び出さないsuper.paint()
でください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
}
}