问题显示BitmapFields在HorizontalFieldManager在一行中的黑莓风暴
-
20-09-2019 - |
题
我已经创建了一个HorizontalFieldManager&加BitmapFields。
在黑莓风暴,显示。getWidth()是480人。在,我想到使用第450添加一些BitmapFields在左轴的屏幕我m建立在运行时&加2BitmapFields在开始在右轴的屏幕。
2BimapFields我想要表示在开始r加入的构造和其他BitmapFields我m建立在运行时间r加入后记像..
class MyCanvas extends MainScreen
{
MyCanvas()
{
hfm_BitmapField = new HorizontalFieldManager(){
protected void sublayout(int maxWidth, int maxHeight) {
super.sublayout(maxWidth, maxHeight);
setExtent(Display.getWidth()-30, 60);
}
};
startBitmap = Bitmap.getBitmapResource("start.png");
startBitmapField = new BitmapField(startBitmap, BitmapField.ACTION_INVOKE | BitmapField.FIELD_HCENTER | BitmapField.FIELD_RIGHT);
hfm_BitmapField.add(startBitmapField);
endBitmap = Bitmap.getBitmapResource("end.png");
endBitmapField = new BitmapField(endBitmap, BitmapField.ACTION_INVOKE | BitmapField.FIELD_HCENTER | BitmapField.FIELD_RIGHT);
hfm_BitmapField.add(endBitmapField);
drawBitmap();
}
public void drawBitmap()
{
bitmap[i] = new Bitmap(50, 50);
Graphics g = new Graphics(bitmap[i]);
g.drawLine(5,5,25,25);
bitmapField[i] = new BitmapField(bitmap[i]);
synchronized(UiApplication.getEventLock()) { hfm.add(bitmapField[i]); }
}
我想startBitmapField&endBitmapField在右轴&bitmapField[i]我m建立在运行时在左轴的HorizontalFieldManagers.
我想添加2HorizontalFieldManagers.1bitmapField[i]&1startBitmapField&endBitmapField.但如何增加2HorizontalFieldManagers或任何其他FieldManagers在行?
任何解决方案吗?如何做到这一点?
解决方案
你可以把2水平的外地管理人员在另一个HorizontalFieldManager.
其他提示
而不是使用的对标志尝试加入到你的sublayout方法。
对于每个儿童的管理员(双曲调频)需要调setPositionChild.所以如果你想要它对准和垂直为中心的你会做这样的:
setPositionChild(deleteButton,双曲调频.getPreferredWidth()-deleteButton.getPreferredWidth(),(双曲调频.getPreferredHeight()/2)-(deleteButton.getPreferredHeight()/2));
这将左上角落的删除的按钮是在正确的位置,使得它是正确对准和垂直集中在双曲调频.
那里将是一个问题,如果你看到的应用程序的接触。你必须有你的每一个定制的领域中一个独立领域管理,以避免使用的触摸的事件。如果你使用layoutChild,而不是超级。sublayout(width,height),这将禁止导航在屏幕,以避免使用它。使用navigationMovement定制您的导航领域。更多:如果你不使用超级。sublayout功能,它可能不布你的一些领域,因此建议使用它。
更多:利用风暴模拟器所有你的触摸基础的应用程序,并4.5珍珠模拟器JDEs的所有其他版本,为的兼容性问题。