Intereting Posts
Как импортировать проект библиотеки eclipse из проекта github в android studio? . CookieManager.getInstance () removeAllCookie (); Не удаляет все файлы cookie Set Location Center of Map – GMaps v2 – Android Как открыть файл .db. Файл .db создается из формы eclipse (android) DDMS -> File explorer -> data —> data -> packagename -> database …? Библиотека поддержки Android 23.4.0: android.support.v7.widget.TintContextWrapper не может быть перенесена в Activity 1 Keystore для подписывания всех приложений или 1 на приложение? Android Studio – Android Device Monitor – пустой вид Не удалось запустить эмулятор Android в Ubuntu Как взаимодействовать с BadgeProvider на телефонах Samsung, чтобы добавить счет к значку приложения? Android: закрыть диалоговое окно при касании Почему run () вызывается только один раз? Почему одна поточная модель используется для обновления пользовательского интерфейса в качестве основного потока? Android Nexus 7 Jelly Bean: startPreview / takePicture, вызывающий getCameraStereoMode регистрирует ошибку Изображение выходит из камеры на Thunderbolt & G2? Как настроить преобразование JSON тела ответа в «Дооснащение»?

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