Blackberry - 单行B​​asicEditField,带有大文本

时间:2009-07-21 11:51:47

标签: user-interface blackberry custom-controls

我使用Bitmap.Now创建了一个带边框的自定义BasicEditField,在输入文本时,它越过了BasicEditField的边框。

这是我的代码

class customEditField1 extends EditField
{
     Bitmap mBorder = null;
     customEditField1(Bitmap borderBitmap) 
     {
        mBorder = borderBitmap;
     }
     protected void paint(Graphics graphics) 
     {
         graphics.drawBitmap(0, 0, mBorder.getWidth(),mBorder.getHeight(), mBorder, 0, 0);
         super.paint(graphics);
     }
}

我想创建一个BasicEditField,它应该隐藏先前输入的文本并显示新输入的文本,并且键入的文本应该在边框中。它不应该取决于字符数限制。我想要应用填充文本和边界之间。

1 个答案:

答案 0 :(得分:1)

您可以将BasicEditField放入Horizo​​ntalFieldManager 不要忘记将边框位图绘制从BasicEditField移动到Horizo​​ntalFieldManager。

class ScrollEdit extends HorizontalFieldManager {
    Bitmap mBorder = null;
    public BasicEditField mEdit = null;

    public ScrollEdit(Bitmap border) {
        super(HORIZONTAL_SCROLL | NO_HORIZONTAL_SCROLLBAR);
        mBorder = border;
        mEdit = new EditField(BasicEditField.NO_NEWLINE);
        add(mEdit);
    }

    protected void paint(Graphics graphics) {
        graphics.drawBitmap(0, 0, mBorder.getWidth(), mBorder.getHeight(),
                mBorder, 0, 0);
        super.paint(graphics);
    }

}

但是你必须使用layout和setExtent来调整大小管理器并正确编辑。我的建议是首先尝试没有边框位图。

请参阅Scroll BasicEditField instead of wrap

谈论换行,在管理器中设置padding到BasicEditField或在边框位图中添加空格......