Изменить размер LabelField (ежевика) - PullRequest
1 голос
/ 05 мая 2011

Ниже класса - поле пользовательской метки, которое рисует растровое изображение в качестве фона.Я переопределяю getprefferedwidth и getpreferredheight, это не будет устанавливать высоту и ширину моего поля?В настоящее время ширина и высота не установлены правильно

Спасибо

   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();
    }

1 Ответ

2 голосов
/ 05 мая 2011

Вы также должны переопределить layout(int width, int height):

protected void layout(int width, int height) {
    super.layout(width, height);
    setExtent(Math.min(width, this.BackgroundBitmap.getWidth()), Math.min(height, this.Backgroundbitmap.getHeight());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...