Главная » Разработка для Android » Битовые карты в Android приложении

0

 

Битовая карта (Bitmap) – последний, четвертый, основополагающий компонент для рисования. Кроме нее, в этот квартет входит то, что мы собираемся рисовать (String, Rect и т. д.), Paint, с помощью которого мы будем рисовать, и Canvas, на котором нужно рисовать. Сама битовая карта содержит биты. Как правило, вам не придется работать непосредственно с Bitmap, так как Canvas, сообщаемый в качестве аргумента к методу onDraw, уже несет в себе одну битовую карту.

Обычно Bitmap используется для кэширования рисунка, создавать который довольно долго, а изменять если и приходится, то нечасто. Представим себе, например, графический редактор, позволяющий пользователю рисовать на нескольких слоях одновременно. Слои действуют как прозрачные наложения, покрывающие основное изображение, и пользователь может по желанию включать и выключать те или иные слои. Однако будет очень сложно заново рисовать тот или иной слой при каждом вызове onDraw. Быстрее было бы отображать весь рисунок при первом его появлении, со всеми видимыми слоями, а потом перерисовывать тот единственный слой, в который пользователь внес отображаемое изменение.

Реализация такого приложения может выглядеть как в примере 9.9.

Пример 9.9. Кэширование графики

Как правило, этот виджет просто копирует кэшированную информацию Bitmap, cache в Canvas, передаваемый методу onDraw. Только если кэш будет помечен как устаревший путем вызова іrivalіdateCache, будет вызываться drawCachedBitmap – та карта, которая и отобразит виджет.

На практике Bitmap чаще всего используется для программного представления графического ресурса. Resources.getDrawable возвращает BitmapDrawable, если ресурс – это изображение.

Если совместить две эти идеи, оказывается, что при кэшировании изображения и заключении его в Drawable открывается еще одна интересная перспектива. Дело в том, что любая нарисованная информация допускает постобработку! Приложение, использующее все техники, позволяет пользователю нарисовать в комнате мебель (создавая карту битов), а потом походить по этой комнате (при помощи матричных преобразований).

Источник: Android. Программирование на Java для нового поколения мобильных устройств

По теме:

  • Комментарии