Я создал собственный ImageView и в его методе onDraw мне нужно нарисовать несколько растровых изображений, основанных на взаимодействии с пользователем, таких как касание. Все работает нормально, но медленно, так как я начинаю добавлять все больше и больше растровых изображений, приложение действительно замедляется.
Это то, что я делаю в моем onDraw Custom ImageView
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Log.e(TAG, "onDraw called");
for (int i=0; i < bitmapList.size(); i++){
drawBitmap(canvas, bitmapList.get(i));
}
}
Как видите, я перерисовываю все растровые изображения в списке каждый раз, когда onDraw вызывается естественным образом, когда число растровых изображений превышает 4-5, скажем, операция становится очень дорогой и замедляет работу приложения.
Любое решение этой проблемы относительно того, как это может быть оптимизировано?
Может ли вызов drawBitmap в другом потоке сделать операцию менее дорогой?
Есть ли способ сохранить копию предыдущего холста, а затем просто восстановить ее в onDraw, а не рисовать все растровые изображения снова?
Вопрос, по сути, заключается в обновлении View с помощью множества динамических изображений и его оптимизации.