Java Blackberry Bitmap Click - PullRequest
       13

Java Blackberry Bitmap Click

1 голос
/ 27 января 2012

Меня интересует значок растрового изображения, при нажатии которого открывается новый экран. Сейчас я использую эту ссылку для рисования растрового изображения:

Blackberry Clickable BitmapField

Этот код предназначен для рисования растрового изображения на экране и вызова действия при нажатии. У него есть две картинки с и без фокуса. Я звоню с:

CustomMenuButtonField buttonInstance = new CustomMenuButtonField("img1.png", "img2.png");
add(buttonInstance);

Я изменил:

protected boolean navigationClick(int status, int time)
    {
        Alert.startVibrate(50);
        //fieldChangeNotify(0);
        return true;
    }

Одна из проблем, с которыми я сталкиваюсь, заключается в том, что, когда я щелкаю вне изображения в менеджере полей, изображение все равно изменяется и вызывается действие (вибрирует). Отсюда он остается в «фокусе», пока я не нажму на другое текстовое поле в окне, но щелчок по пустому пространству все равно не изменит его. У меня вопрос: должно ли это происходить, и есть ли способ ограничить его, чтобы действие вызывалось ТОЛЬКО при нажатии на растровое изображение, а не вокруг него? Также существует ли простой способ масштабирования растрового изображения в нечто меньшего размера, например значок? Я пытаюсь расположить 4 иконки, которые при нажатии откроют четыре разных экрана. Если кто-нибудь знает что-нибудь об этом, любая помощь будет оценена. Я только начал Java, поэтому я начинающий.

1 Ответ

1 голос
/ 27 января 2012

Примечание. Я очень склонен к API Blackberry.

Прошло много времени с тех пор, как я работал над Blackberry (версия 5).) программное обеспечение, поэтому мой совет может быть полностью устаревшим.(Я думаю, что я работал над версией 5).

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

//Garbage code from a dead project
      /* (non-Javadoc)
       * @see net.rim.device.api.ui.Manager#paint(net.rim.device.api.ui.Graphics)
       */
      protected void paint(Graphics graphics) {
        if(style == Spinner.DRAW_ROUNDED_RECTANGLE)
          drawRoundedRectangluar(graphics);
        else
          drawRectangular(graphics);
      }

Остальная часть этого мусора, поэтому я только публикую идею ее

Если вы расширяете работающую кнопку и заменяете метод рисования (мало чем отличается от работы с Swing, кроме бесконечно более мучительного) в принципе вы можете делать все, что захотите.Это даст вам возможность масштабировать изображение и делать все, что вам нужно.

Однако я надеюсь, что Blackberry обновил их API за последние несколько лет.Этот проект был болезненным и занимал примерно в 10 раз больше работы, чем нужно для выполнения того, что, как вы думали, нужно.

Кроме того, события должны (ed?) Потребляться на устройстве, иначе они будут автоматическираспространять (возвращать true для слушателей, чтобы указать, что событие используется).

Не зная версию и точный API, я боюсь, что не могу помочь, кроме как сказать, что я настоятельно рекомендую придерживатьсяАбсолютные минимальные требования, поэтому он переносится на все устройства ИЛИ пытается выполнить приложение через мобильный веб-интерфейс (не всегда вариант).Я обнаружил, что Blackberry был трясиной во время разработки, и я отказался от нее.

Работая с ней, я обнаружил, что написание картины с нуля было быстрее, чем попытка заставить их компоненты работать последовательно, это выполнимо, и 95% учебных пособий по свингу будут переведены с минимальной дополнительной работой.

(Кроме того, SWT немного лучше подходит для API, вы должны проверить это в Eclipse - и, если вы не используете Eclipse для разработки Blackberry, поднимите это во время работы.Инструменты RIM из коробки были ужасны.)

...