Android - кэш чертежа - когда он полезен?
Я читаю о setDrawingCacheEnabled
и getDrawingCache
, и мне было интересно, когда это хорошо использовать или когда это не хорошо.
В основном в моем случае у меня есть HorizontalScrollView
со многими вещами внутри него, поэтому его прокрутки влево/вправо, и большинство вещей не видно.
Если я использую setDrawingCacheEnabled(true)
в представлениях, это помогает? или это только когда я использую пользовательские представления, и я вызываю getDrawingCache()
?
Есть ли какой-либо другой способ "кеша" в HorizontalScrollView
?
Ответы
Ответ 1
TouchInterceptor.java - это класс, ответственный за переупорядочение вашего плейлиста в музыкальном проигрывателе по умолчанию. Он использует setDrawingCacheEnabled
, когда вы начинаете перетаскивать текущий вид. В принципе, он создает растровое изображение из элемента ListView
и перетаскивает его. Присмотритесь к методу onInterceptTouchEvent
.
Ответ 2
Это определенно полезно для скриншотов, как сказал Марсель. Это также очень полезно для производительности, так как для этого и было создано. Он использует больше памяти, поскольку сначала вы визуализируете представление в растровое изображение.
Что вы делаете, вы setDrawingCacheEnabled
до true
, вызываете getDrawingCache
, который возвращает растровое изображение и сохраняет это растровое изображение. В onDraw
вы рисуете растровое изображение, которое вы получили, если кеш включен, или в противном случае. Это может быть очень приятно при прокрутке.