Использование subpaint () на главном экране Не правильно рисует ребенка - PullRequest
1 голос
/ 01 августа 2011

Чтобы быстро разобраться в проблеме, обратитесь к Создание прозрачного главного экрана в Blackberry .

Проблема, с которой я сталкиваюсь, связана с рисованием ребенка на главном экране.Я хотел, чтобы мой главный экран выглядел прозрачным / полупрозрачным в качестве исходного требования и добавил поверх него другие мои элементы пользовательского интерфейса, например, менеджеры / поля.

Таким образом, я использую 3 элемента пользовательского интерфейса, которые должны иметьего толстая граница создана с помощью BorderFactory.createSimpleBorder () с двумя цветами, добавленными для состояний Field.VISUAL_STATE_FOCUS и Field.VISUAL_STATE_NORMAL.все эти BitmapFields добавляются в их соответствующие HorizontalFieldManger, которые, в свою очередь, добавляются на экран.

Таким образом, часть проблемы заключается в том, что, когда я выполняю навигацию по этим BitmapFields, «некоторая область» границы, добавленной в BitmapFields, не окрашивается в соответствии с указанным состоянием (нормальный, фокус).

Другая проблема заключается в том, что на факеле 9800, когда я перемещаюсь сверху вниз или наоборот, я вижу прокрутку по умолчанию, которая должна быть нормальной, однако при каждой прокрутке мой BitmapField оставляет некоторый хвост / трещину на экране, когда происходит движениепрокрутка.

Ничего подобного не происходит, когда я использую обычный экран (не используйте подкраску, чтобы сделать экран прозрачным).

У вас есть идеи, что здесь происходит? ..

  • Большой О

1 Ответ

1 голос
/ 02 августа 2011

YMMV, но я сделал прозрачный экран с этим:

public class TranslucentScreen extends Screen {
    public TranslucentScreen() {
        super(new VerticalFieldManager(USE_ALL_WIDTH | NO_VERTICAL_SCROLL));
        setBackground(BackgroundFactory.createSolidTransparentBackground(0x000000, 150));
    }
    protected void sublayout(int width, int height) {
        setPosition(0, 0);
        setExtent(width, height);

        setPositionDelegate(0, 0);
        layoutDelegate(width, height);
    }
}

Это было для основного всплывающего экрана, который я сделал, который имел полупрозрачный черный фон.Я добавил VerticalFieldManager на экран, на котором я управлял рисованием фона, чтобы он был таким, каким я его хотел, а затем добавил к нему другие мои поля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...