в android Я прочитал несколько статей о том, как drawables совместно используют постоянное состояние. поэтому, если вы вносите изменения в drawable, это влияет на все одинаковые растровые изображения. например, скажем, у вас есть список звездных чертежей. изменение альфы на одном изменит все звездные символы альфа. но вы можете использовать mutate, чтобы получить свою собственную копию с возможностью переноса без общего состояния.
В статье я читал это hereandroid Drawable - getConstantState.newDrawable() vs mutate()
Теперь на мой вопрос:
чем разница между следующими двумя вызовами в андроиде:
Drawable clone = drawable.getConstantState().newDrawable();
// vs
Drawable clone = (Drawable) drawable.getDrawable().mutate();
Для меня они оба клонирования Drawable как они оба возвращают доступный, который не имеет общего состояния. Я что-то упускаю ?
Вы заметите с '' mutate', что клон == drawable' является ' true'. – 4castle
Я вижу, поэтому mutate - это то же самое, что и выведенное, но без общего состояния. и drawable.getConstantState(). newDrawable(); на самом деле это новый способный поместиться в память, правильно? – j2emanue
Это правильно! – 4castle