在黑莓(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);
}
请,谢谢,
挖洞
答案 0 :(得分:0)
在构造函数中不需要USE_ALL_HEIGHT。
//改为使用此
_myVFM = new MyViewManager(Manager.USE_ALL_WIDTH | Manager.VERTICAL_SCROLL){};
答案 1 :(得分:0)
您可以重新定义方法以定义经理的高度
protected void setExtent(int width, int height) {
super.setExtent(width, myHeight);
}
要重新定义背景图像,重新定义以下方法,返回false
protected boolean isScrollCopyable() {
return false;
}
另一个评论是,从paint方法获取图像是一种不好的做法。你正在做的是每次你调用paint方法都会得到这个图像。 最好先获取图像然后再使用它。
答案 2 :(得分:0)
public MyScreen() {
super(NO_VERTICAL_SCROLL);
我设法使用'NO_VERTICAL_SCROLL'样式参数在我的MainScreen扩展中解决了这个问题
结合Rupak建议在Vertical Field Manager的构造函数中设置Background而不是覆盖paint( https://gist.github.com/3248319)
现在一切似乎都很好 - 感谢所有人的帮助。挖洞