Подтвердить что ты не робот

Android - кэш чертежа - когда он полезен?

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

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

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

Есть ли какой-либо другой способ "кеша" в HorizontalScrollView?

4b9b3361

Ответ 1

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

Ответ 2

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

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