Android - кеш рисования - когда это полезно? - PullRequest
16 голосов
/ 23 июня 2010

Я читаю о setDrawingCacheEnabled и getDrawingCache, и мне было интересно, когда это хорошо использовать или когда это не хорошо.

В основном в моем случае у меня есть HorizontalScrollView со многими вещами внутри него, поэтому его свитки влево / вправо и большинство вещей не видны.

Если я использую setDrawingCacheEnabled(true) в представлениях, это поможет? или это только когда я использую пользовательские представления и звоню getDrawingCache()?

Есть ли другой способ кэширования в HorizontalScrollView?

Ответы [ 2 ]

5 голосов
/ 10 февраля 2011

TouchInterceptor.java - этот класс отвечает за изменение порядка воспроизведения в музыкальном проигрывателе по умолчанию.Он использует setDrawingCacheEnabled, когда вы начинаете перетаскивать текущий вид.По сути, он создает растровое изображение из элемента ListView и перетаскивает его.Присмотритесь к методу onInterceptTouchEvent.

4 голосов
/ 07 февраля 2011

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

Что вы делаете, вы setDrawingCacheEnabled до true, вызываете getDrawingCache, который возвращает растровое изображение и сохраняет это растровое изображение. В onDraw вы рисуете растровое изображение, полученное, если кеш включен, или представление иначе. Это может быть очень приятно при прокрутке.

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