0

在黑莓(OS 7.0)上开发,我创建了一个扩展的垂直字段管理器:

_myVFM = new MyViewManager(Manager.USE_ALL_WIDTH | Manager.USE_ALL_HEIGHT | Manager.VERTICAL_SCROLL){};

但是,当我滚动视图时,虚拟滚动视图的大小显得太大了。即,我可以向下滚动很多,而不是需要,但我不知道为什么?

任何机构任何快速的想法?我确实有一个这样创建的背景图像:

public void paint(Graphics graphics)
{
    Bitmap backgroundBitmap = Bitmap.getBitmapResource("bg.png");
    Bitmap newBackground = new Bitmap(Display.getWidth(), Display.getHeight());
    backgroundBitmap.scaleInto(newBackground, Bitmap.FILTER_LANCZOS, Bitmap.SCALE_TO_FILL);

    graphics.clear();
    graphics.drawBitmap(0, 0, Display.getWidth(),            
             Display.getHeight(), newBackground, 0, 0);                 
    super.paint(graphics);
}

请和谢谢,

洞穴

4

3 回答 3

0

无需在构造函数中使用 USE_ALL_HEIGHT。

// 改为使用这个

_myVFM = new MyViewManager(Manager.USE_ALL_WIDTH | Manager.VERTICAL_SCROLL){};
于 2012-08-10T07:14:56.923 回答
0

您可以重新定义方法来定义管理器的高度

protected void setExtent(int width, int height) {
    super.setExtent(width, myHeight);
}

为了不重复背景图片需要重新定义下面的方法,返回false

protected boolean isScrollCopyable() {
    return false;
}

另一个评论是,从绘画方法获取图像是一种不好的做法。你所做的是每次调用paint方法都会得到这个图像。最好先获取图像,然后再使用它。

于 2012-08-11T20:54:20.347 回答
0
    public MyScreen() {
    super(NO_VERTICAL_SCROLL);

我设法使用“NO_VERTICAL_SCROLL”样式参数在我的 MainScreen 扩展中解决了这个问题

结合 Rupak 的建议,即在我的 Vertical Field Manager 的构造函数中设置背景而不是覆盖绘画( https://gist.github.com/3248319

现在一切似乎都很好 - 感谢大家的帮助。

洞穴

于 2012-08-13T09:49:57.730 回答