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.