开发者

Amend size of LabelField (blackberry)

Below 开发者_开发问答class is custom label field that paints a bitmap as its background. Im overriding getprefferedwidth and getpreferredheight, will this not set the height and width of my field? Currently the width and height are not being set correctly

Thanks

   public class TimerLabelField extends LabelField {

        private int colour;
        private Bitmap backgroundBitmap;

    public TimerLabelField(Object text, long style, Font font, int colour,
            Bitmap backgroundBitmap) {
        super(text, style);
        this.colour = colour;
        this.backgroundBitmap = backgroundBitmap;
    }

    protected void paint(Graphics graphics) {

        if(backgroundBitmap != null){
            graphics.drawBitmap(0, 0, this.backgroundBitmap.getWidth(), this.backgroundBitmap.getHeight(), this.backgroundBitmap, 0, 0);
        }

        graphics.setColor(this.colour);
        super.paint(graphics);

    }

    public int getPreferredWidth() 
    {
        return this.backgroundBitmap.getWidth();
    }

    public int getPreferredHeight() 
    {
        return this.backgroundBitmap.getHeight();
    }


You should override layout(int width, int height) as well:

protected void layout(int width, int height) {
    super.layout(width, height);
    setExtent(Math.min(width, this.BackgroundBitmap.getWidth()), Math.min(height, this.Backgroundbitmap.getHeight());
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜