2015-10-29 3 views
0

У меня есть экран с кнопкой, который, когда я нажимаю на него, появляется в виде фона экрана ImageView (с заполнением родительской высоты и ширины). Мне нужно оживить его, как эффект пульсации, что означает, что после нажатия кнопки пульсация «пузырь» отображается с кнопки и происходит на всем экране, после чего появляется мое изображение. Я не знаю, как это сделать. Не могли бы вы дать мне несколько примеров или советов, как я могу это сделать, пожалуйста? Спасибо.Эффект пульсации Android при появлении ImageView

+1

проверить это: https://github.com/activesince93/CustomViews – activesince93

+0

я добавил эффект ряби на кнопки деятельности. – activesince93

ответ

4

Easy:

поставить это в раскрыть() метод:

int cx = view.getRight() - 30; 
int cy = view.getBottom() - 60; 
int finalRadius = Math.max(view.getWidth(), view.getHeight()); 
Animator anim = ViewAnimationUtils.createCircularReveal(view, cx, cy, 0, finalRadius); 
view.setVisibility(View.VISIBLE); 
isEditTextVisible = true; 
anim.start(); 

Если вы хотите скрыть, поместить это в шкуру() метод:

int cx = view.getRight() - 30; 
int cy = view.getBottom() - 60; 
int initialRadius = view.getWidth(); 
Animator anim = ViewAnimationUtils.createCircularReveal(view, cx, cy, initialRadius, 0); 
anim.addListener(new AnimatorListenerAdapter() { 
    @Override 
    public void onAnimationEnd(Animator animation) { 
    super.onAnimationEnd(animation); 
    view.setVisibility(View.INVISIBLE); 
    } 
}); 
isEditTextVisible = false; 
anim.start(); 

Здесь ваша цель заключается в том, чтобы скрыть представление и показать круговую анимацию в противоположном направлении. Поэтому вы делаете начальный радиус шириной вида и конечным радиусом 0, который сжимает круг. Сначала вы хотите показать анимацию, а затем скрыть представление. Для этого вы реализуете прослушиватель анимации и скрываете представление, когда анимация заканчивается.

Source

In Action:

+1

Что мы можем сделать, чтобы получить этот эффект на устройствах с предварительным леллипопом? – Emil

+0

@Boss: Это совсем другая игра с мячом, на данный момент у меня нет для этого решения. Возможно, вы заглянете в источник 'ViewAnimationUtils.createCircularReveal' и выберете точку или два – Skynet

+0

ОК. спасибо, я придерживаюсь этой библиотеки https://github.com/ozodrukh/CircularReveal – Emil

Смежные вопросы