Наложение поля пользовательского интерфейса с другим полем пользовательского интерфейса в BlackBerry - PullRequest
1 голос
/ 02 марта 2010

В моем проекте мне нужно поместить LabelField поверх BitmapField. У меня есть BitmapField внутри VerticalFieldManager. Я хочу полный код для этой проблемы.

Мое приложение для BlackBerry OS 4.7.

Ответы [ 3 ]

1 голос
/ 02 марта 2010

Также вы можете рисовать текст поверх растрового изображения:

class Scr extends MainScreen {
    Bitmap bmp = new Bitmap(200, 100);

    public Scr() {
        //draw bitmap
        Graphics g = new Graphics(bmp);
        g.drawLine(0, 0, 199, 99);
        g.drawLine(199, 0, 0, 99);

        //draw text
        Font f = getFont().derive(Font.PLAIN, 15);
        g.drawText("hello", 0, (bmp.getHeight() - f.getHeight()) >> 1, 
            DrawStyle.HCENTER|DrawStyle.VCENTER);
        add(new BitmapField(bmp));
    }
}

Другой способ - реализовать пользовательский макет, как в Blackberry - анимация макета полей

1 голос
/ 02 марта 2010

Вы можете создать свой собственный класс расширений BitmapField и переопределить метод paintBitmap ().

Как это:

public class MyBitmapField extends BitmapField {
//...       
protected void paintBitmap(Graphics g, int arg1, int arg2, int arg3,
        int arg4, Bitmap arg5, int arg6, int arg7) {            
    super.paintBitmap(g, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
    g.drawText("Your text", 5,5 );  
}

// ...

}

Также вы можете изменить drawFocus () , paintBackground () и другие.

0 голосов
/ 09 мая 2011

Или используйте отрицательное поле (исходный код доступен для скачивания внизу этой страницы):

enter image description here

ОБНОВЛЕНИЕ: Еще одна ссылка для NegativeMarginVerticalFieldManager

...