Intereting Posts
Контрольные точки SampleSyncAdapter не работают Как сделать телефонный звонок в android и вернуться к моей активности, когда звонок будет завершен? Как я могу что-то сделать, через 0,5 секунды после изменения текста в моем EditText? Основная деятельность – это не сбор мусора после уничтожения, поскольку на него ссылается InputMethodManager косвенно Проверяет ли флажок Никогда не спрашивать снова при запросе разрешения во время выполнения отключить будущие диалоги? Android – Потеря USB-данных (hi-speed) Как Flurry предоставляет бесплатный аналитический сервис? Android Как установить шаг шкалы в шахматном порядке для использования доступной ширины экрана? Использование метода BottomSheetBehavior с внутренним координаторомLayout Twitter Bootstrap modal на мобильных устройствах Ошибка Android Marketplace: «Сервер не смог обработать ваш apk. Попробуй еще раз." Как написать многопользовательское приложение Android с очень глубокой навигацией Фрагменты. Нужно ли использовать обертыватель активности вокруг фрагмента, который включает всю активность? Включить и отключить автоматическое вращение программно? Как добавить гиперссылку на экран настроек (PreferenceActivity)

Android: пульсирующий фон программно

В настоящее время я создаю приложение для Android, где кто-то может ввести свое имя, нажать кнопку, а затем просто возвращает свое имя.

Одним из эффектов, который я хотел бы достичь с этим, является эффект, когда после нажатия кнопки вход и кнопка исчезнут (до завершения этого бита до сих пор), а затем цвет фона в представлении MainActivity будет пульсировать (от Центр) с новым цветом, в конечном итоге изменяя полный цвет фона.

Как я буду делать это программно, так как я могу только найти учебники по добавлению рядов к кнопкам при нажатии?

Solutions Collecting From Web of "Android: пульсирующий фон программно"

РЕДАКТИРОВАТЬ:

Я проверил это, сделав небольшое приложение

Прежде всего скройте представление, которое вы хотите показать в этой анимации.

Представление может быть с одного и того же макета, и в xml его видимость должна быть невидимой, чтобы анимация раскрыла его.

Вы можете установить высоту и ширину представления в соответствии с родительским, если вы хотите создать полноэкранную анимацию

Возьмите свое оригинальное и открытое представление как в макете кадра

В моем случае я использовал это:

<FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:text="Hello World!" android:layout_width="wrap_content" android:textSize="20sp" android:layout_height="wrap_content" /> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/colorPrimaryDark" android:id="@+id/revealiew" android:visibility="invisible" > </FrameLayout> 

То в вашей деятельности при button click или в каком-либо событии выполните следующее:

  fab.setOnClickListener(new View.OnClickListener() { @TargetApi(Build.VERSION_CODES.LOLLIPOP) @Override public void onClick(View view) { // previously invisible view View myView = findViewById(R.id.revealview); // get the center for the clipping circle int cx = myView.getWidth() / 2; int cy = myView.getHeight() / 2; // get the final radius for the clipping circle int finalRadius = Math.max(myView.getWidth(), myView.getHeight()); // create the animator for this view (the start radius is zero) Animator anim = ViewAnimationUtils.createCircularReveal(myView, cx, cy, 0, finalRadius); //Interpolator for giving effect to animation anim.setInterpolator(new AccelerateDecelerateInterpolator()); // Duration of the animation anim.setDuration(1000); // make the view visible and start the animation myView.setVisibility(View.VISIBLE); anim.start(); } }); } 

Прикрепленный GIF для вашей справки

Вы можете подробно ознакомиться с официальной документацией здесь: http://developer.android.com/training/material/animations.html

То, что вы описываете, является проявлением эффекта на фоне.

Из официального документа вы можете найти готовые примеры:

1) Вот как выявить ранее невидимое представление с использованием эффекта раскрытия:

 // previously invisible view View myView = findViewById(R.id.my_view); // get the center for the clipping circle int cx = myView.getWidth() / 2; int cy = myView.getHeight() / 2; // get the final radius for the clipping circle int finalRadius = Math.max(myView.getWidth(), myView.getHeight()); // create the animator for this view (the start radius is zero) Animator anim = ViewAnimationUtils.createCircularReveal(myView, cx, cy, 0, finalRadius); // make the view visible and start the animation myView.setVisibility(View.VISIBLE); anim.start(); 

2) Вот как скрыть видимый вид, используя эффект раскрытия:

 // previously visible view final View myView = findViewById(R.id.my_view); // get the center for the clipping circle int cx = myView.getWidth() / 2; int cy = myView.getHeight() / 2; // get the initial radius for the clipping circle int initialRadius = myView.getWidth(); // create the animation (the final radius is zero) Animator anim = ViewAnimationUtils.createCircularReveal(myView, cx, cy, initialRadius, 0); // make the view invisible when the animation is done anim.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); myView.setVisibility(View.INVISIBLE); } }); // start the animation anim.start(); 

В приложении вы можете использовать цветной фоновый слой (невидимый в начале), а затем использовать эффект раскрытия на нем.

Проверьте этот сайт, «Android Ripple Background» – это библиотека для этого, а min sdk – 11 (Android 3.0 Honeycomb)
https://android-arsenal.com/details/1/1107