Быстрое отображение растровых изображений в Android - PullRequest
0 голосов
/ 18 марта 2011

Я написал небольшое клиент-серверное приложение, которое передает битовые карты по протоколу TCP. Серверная часть работает как шарм, но на стороне клиента я не уверен, как отобразить полученные растровые изображения. Клиентский бэкэнд вызывает каждый раз, когда новое изображение получает метод в деятельности, который должен обновлять и отображать растровое изображение ... до 25 кадров в секунду. Какое самое лучшее решение?

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

this.image = (ImageView) findViewById(R.id.imageView1);

и

    public void setImage(BufferedImage bufImage) {
    if (bufImage.hasBitmap()) {
        this.image.setImageBitmap(bufImage.getBitmap());
    }
}

(я написал собственный класс BufferedImage, который содержит правильные растровые изображения)

Даже с image.invalidate () ничего не происходит, пока сервер не закроет соединение ...

1 Ответ

0 голосов
/ 18 марта 2011

Звучит так, как будто вы выполняете сетевой ввод-вывод в потоке пользовательского интерфейса. В этом случае происходит то, что в пользовательском интерфейсе ничего не обновляется до завершения сетевых операций. Если это так, то вам нужно создать поток для запуска ввода-вывода сервера и заставить его перезвонить потоку пользовательского интерфейса с отображаемыми кадрами. Вот некоторая общая информация о том, как взаимодействуют потоки и пользовательский интерфейс, которые должны помочь в этом случае:

http://developer.android.com/resources/articles/painless-threading.html

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