本人正在利用RTSP协议来开发黑发的实时视频播放器,基本工作已经完成,视频也能播放。但是由于用的是黑莓自身的API,所以所有的UI界面都是利用黑莓自身控件去做的,现在要做一个播放器进度条,昨天利用Paint()方法实现了进度条的功能,但是自己集成代码的时候,发现用Paint()方法实现的进度条将整个播放器的界面都覆盖掉了,经过自己查证跟请教其他同事才知道paint()方法它有自己的机制,一旦代码中出现Graphics.paint()以后系统将会默认调用paint()方法,而将其他的画图的方法屏蔽(也不知道这种解释是对还是错,但是目前的结果就是这样),所以无奈之下自己通过查阅资料自己制作了一个黑莓进度条控件,但是现在遇到的问题是我不会将自己定制的黑莓进度条组件集成到程序中,有哪个高手以前遇到过这种问题请教教我,不胜感激。。。。。。
------解决方案--------------------
照着下面代码做:
package com.test;
import java.util.Timer;
import java.util.TimerTask;
import net.rim.device.api.system.Display;
import net.rim.device.api.ui.DrawStyle;
import net.rim.device.api.ui.Font;
import net.rim.device.api.ui.Graphics;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.GaugeField;
import net.rim.device.api.ui.container.MainScreen;
public class Test extends UiApplication {
public static void main(String[] args) {
Test test = new Test();
test.enterEventDispatcher();
}
public Test() {
pushScreen(new TestCrean());
}
class TestCrean extends MainScreen {
public TestCrean() {
GaugeField gaugeField = new GaugeField(null, 1, 100, 1,
GaugeField.PERCENT) {
int num = 1;
private Timer _scrollTimer;
private TimerTask _scrollTimerTask;
protected void onDisplay() {
startScroll();
}
public void DataNum() {
num++;
if (num > 100) {
num = 1;
}
this.setValue(num);
}
private void startScroll() {
if (_scrollTimer == null) {
_scrollTimer = new Timer();
_scrollTimerTask = new TimerTask() {
public void run() {
DataNum();
}
};
_scrollTimer.scheduleAtFixedRate(_scrollTimerTask, 500,
500);
}
}
};
add(gaugeField);
}
}
}