Показать масштабированное изображение на BlackBerry - PullRequest
1 голос
/ 11 декабря 2010

Мое приложение BlackBerry должно получить изображение из веб-службы и отобразить изображение в виде эскиза. Кто-нибудь может дать мне представление о том, как этого добиться?

Ответы [ 3 ]

5 голосов
/ 11 декабря 2010

petteri прав насчет использования EncodedImage и scaleImage32 ().В частности, вы захотите использовать createEncodedImage(byte[] data, int offset, int length) с байтами, возвращенными веб-сервисом.

Имейте в виду, что scaleImage32 принимает аргументы 'int', но они являются числами с фиксированной запятой, в отличие от более широко известных чисел с плавающей запятой.Чтобы получить требуемое значение с фиксированной точкой, используйте служебные методы в Fixed32

Наконец, если вам не нужно исходное изображение в приложении BlackBerry, у вас будет лучше в целомопыт, если веб-сервис делает масштабирование.Это уменьшит количество байтов, передаваемых на устройство, и уменьшит объем вычислений, выполняемых на устройстве для масштабирования изображения.Масштабирование на сервере, вероятно, также приведет к более качественному масштабированному изображению, так как scaleImage32 () использует довольно простой алгоритм.

3 голосов
/ 11 декабря 2010

Я тоже не совсем знаком с BB, но поскольку никто не отвечает на ваш вопрос, проверьте класс EncodedImage, и там метод scaleImage32 () должен вернуть вам уменьшенную версию.

1 голос
/ 11 декабря 2010

Этот код может вам помочь

        connection = (HttpConnection) Connector.open(fullUrl.toString(),
            Connector.READ_WRITE, true);


        InputStream is = hc.openInputStream();

        DataInputStream dis = new DataInputStream(is);
        ByteArrayOutputStream bStrm = new ByteArrayOutputStream();

        int ch;
        while ((ch = dis.read()) != -1) {
            // System.out.println((char) ch);
            // msg = msg + (char) ch;
            bStrm.write(ch);
        }
        bb = bStrm.toByteArray();

Это сгенерирует массив байтов из URL вашего веб-сервиса.здесь bb - байтовый массив.

Есть два класса, которые обрабатывают изображение в BB.EncodedImage и Bitmap, оба имеют конструкторы, которые генерируют изображение из байтового массива.Я рекомендую использовать Bitmap, он имеет возможность легко изменять размер изображения.

...