Получение графического объекта или растрового изображения из BrowserField на Blackberry - PullRequest
2 голосов
/ 23 сентября 2011

Я хотел бы получить растровое изображение содержимого веб-страницы, отображаемое в BrowserField. Поэтому мне нужен графический объект поля браузера. Но метод краски, к сожалению, защищен. Есть ли способ получить это?

Спасибо в

1 Ответ

0 голосов
/ 25 сентября 2011

Обычно, если вы хотите сделать какой-то пользовательский рисунок с полем, т.е. Нарисуйте в графическом контексте поля, подкласс Field и переопределите метод paint . Однако, когда дело доходит до BrowserField, вы не можете сделать это, потому что он объявлен final .

Однако для этого есть обходной путь. Вы можете создать подкласс Manager и добавить свой BrowserField к экземпляру этого менеджера. Так, например, если вы хотите добавить свой экземпляр BrowserField в VerticalFieldManager, вы можете использовать следующий код для получения доступа к объекту Graphics, в который будет втягиваться браузер. В этом примере кода вы увидите, что я использую графический объект и реализацию суперкласса менеджера для рисования в растровое изображение. Затем это растровое изображение рисуется на экране.

VerticalFieldManager vfm = new VerticalFieldManager() {
    // Override to gain access to Field's drawing surface
    //
    protected void paint(Graphics graphics) {

        // Create a bitmap to draw into 
        //
        Bitmap b = new Bitmap(vfm.getVirtualWidth(), vfm.getVirtualHeight());

        // Create a graphics context to draw into the bitmap
        //
        Graphics g = Graphics.create(b);

        // Give this graphics context to the superclass implementation
        // so it will draw into the bitmap instead of the screen
        //
        super.paint(g);

        // Now, draw the bitmap
        //
        graphics.drawBitmap(0, 
                0, 
                vfm.getVirtualWidth(), 
                vfm.getVirtualHeight(), 
                b, 
                0, 
                0);

    }
};

И, там у вас есть Bitmap, содержащий содержимое менеджера. Следует отметить, однако, что это может потреблять много памяти.

...