Анимация рисованного изменения в кнопке
У меня есть Button
это имеет BitmapDrawable
и ряд текста в нем. Не то, чтобы это имело значение, но мой текст "выше" моего текста, который будет соответствовать третьей кнопке сверху.
Drawable устанавливается с помощью:
BitmapDrawable top = new BitmapDrawable(mContext.getResources(), Bitmap.createScaledBitmap(buttonContent.content,
mContext.IMAGE_WIDTH, mContext.IMAGE_HEIGHT, false));
button.setCompoundDrawablesWithIntrinsicBounds(null, top.getCurrent(), null, null);
Изображение, которое я установил, первоначально изменяется после некоторых событий, и я хочу, чтобы изменение изображения было анимированным. У меня уже есть android:animateLayoutChanges=true
поле в моем макете.
Моё первоначальное предположение - создать кастом Button
-учебный класс. Но мне интересно, есть ли другой способ решить мою проблему?
2 ответа
Вы можете анимировать сам инструмент. TransitionDrawable
позволяет плавно переходить между слоями (setCrossFadeEnabled(true)
), вы можете начать переход с помощью чего-то вроде
((TransitionDrawable) button.getCompoundDrawables()[INDEX]).startTransition(MILLIS);
Старый ответ, основанный наAnimatable
s: см. документацию "Drawable Animation". Вы можете использовать эту технику и для составных чертежей.
Запустите анимацию, используя что-то вроде
((Animatable) button.getCompoundDrawables()[INDEX]).start();
или держите ссылку на Animatable
когда не устанавливается рисование из XML.
Ответ "дст" дал правильный. Но если вы ищете перекрестную анимацию между несколькими изображениями и не хотите использовать Animator
-классы TransitionDrawable
не собирается сокращать это. Это только для двух изображений.
Там есть ответ на почти аналогичный пост. Проверьте это!