我制作了一个水平场管理器,它将占据屏幕的全宽和 10% 的高度。现在我想分别向这个管理器添加 3 个字段。第一个是 BitmapField(屏幕宽度的 10%),第二个是 LabelField(屏幕宽度的 80%),第三个是 BitmapField(屏幕宽度的 10%)。
剩下的就是将这些字段的内容集中在字段本身的中心。
这是代码: -
public final class MyScreen extends MainScreen
{
public MyScreen()
{
final int disWidth = Display.getWidth();
final int disHeight = Display.getHeight();
final int heightHFM = (disHeight*10)/100;
HorizontalFieldManager hfm = new HorizontalFieldManager(){
protected void sublayout(int maxWidth, int maxHeight) {
// TODO Auto-generated method stub
super.sublayout(maxWidth, maxHeight);
this.setExtent(disWidth,heightHFM);
}
};
hfm.setBackground(BackgroundFactory.createSolidBackground(Color.GRAY));
BitmapField bmp_leftArrow = new BitmapField(Bitmap.getBitmapResource("arrow_left.png")){
protected void layout(int width, int height) {
// TODO Auto-generated method stub
super.layout(width, height);
this.setExtent((disWidth*10)/100, height);
}
};
bmp_leftArrow.setBackground(BackgroundFactory.createSolidBackground(Color.BLUE));
LabelField lbl_tit = new LabelField("Current Date"){
protected void layout(int width, int height) {
// TODO Auto-generated method stub
super.layout(width, height);
this.setExtent((disWidth*80)/100, height);
}
};
lbl_tit.setBackground(BackgroundFactory.createSolidBackground(Color.RED));
BitmapField bmp_rightArrow = new BitmapField(Bitmap.getBitmapResource("arrow_left.png")){
protected void layout(int width, int height) {
// TODO Auto-generated method stub
super.layout(width, height);
this.setExtent((disWidth*10)/100, height);
}
};
bmp_rightArrow.setBackground(BackgroundFactory.createSolidBackground(Color.GREEN));
hfm.add(bmp_leftArrow);
hfm.add(lbl_tit);
hfm.add(bmp_rightArrow);
add(hfm);
}
}
当我们在android中使用任何视图的重力时需要实现相同的输出