SetImageResource Vs setDrawable
Когда дело доходит до разработки и производительности Android, если у вас есть изображение, то какой из них будет быстрее или лучше (есть какая-то разница!): setImageResource и setDrawable
Знаю, что один принимает идентификатор, а другой - извлекаемый. Но я все равно получаю отвратительный идентификатор.
Какой из них лучше?
Или мне следует избегать использования imageview alltogether и использовать растровое изображение load/draw?
слишком много выборов путают
Спасибо за комментарии
Ответы
Ответ 1
Они разные. Из документов Android.
setImageResource:
Это делает чтение и декодирование растрового изображения в потоке пользовательского интерфейса, что может вызвать задержку икры.
Если это вызывает беспокойство, используйте вместо этого setImageDrawable (android.graphics.drawable.Drawable) или setImageBitmap (android.graphics.Bitmap) и BitmapFactory.
Ответ 2
Они существуют в качестве удобных методов, поэтому вам не обязательно всегда работать, чтобы всегда получать доступную или всегда передавать идентификатор ресурса. Различные ситуации требуют разных подходов.
В общем, нет никакой разницы. Используйте то, что работает для вашей ситуации.
Ответ 3
Я думаю, что setImageDrawable
лучше подходит для интенсивных операций с памятью - например, прокрутка RecyclerView, получение растрового изображения из memcache. Но для чего-то более простого, setImageResource
теперь лучший API.