Я хочу cardview
elevation
анимацию точно так же, как Google делает анимацию "PlayGames". Вот пример gif
анимации. Может ли кто-нибудь помочь мне, как это сделать, или сослаться на любую библиотеку.
Спасибо
Я хочу cardview
elevation
анимацию точно так же, как Google делает анимацию "PlayGames". Вот пример gif
анимации. Может ли кто-нибудь помочь мне, как это сделать, или сослаться на любую библиотеку.
Спасибо
Как это сделать? Использование Viewpager и Shadow Transform
1- создайте PagerAdapter
для просмотра карт
2- внутри адаптера в методе instantiateItem
установить высоту карты вот так
CardView cardView = (CardView) view.findViewById(R.id.cardView);
if (mBaseElevation == 0) {
mBaseElevation = cardView.getCardElevation();
}
cardView.setMaxCardElevation(mBaseElevation * MAX_ELEVATION_FACTOR);
mViews.set(position, cardView);
return view;
после этого реализовать ViewPager.OnPageChangeListener
внутри onPageScrolled
if (currentCard != null) {
if (mScalingEnabled) {
currentCard.setScaleX((float) (1 + 0.1 * (1 - realOffset)));
currentCard.setScaleY((float) (1 + 0.1 * (1 - realOffset)));
}
currentCard.setCardElevation((baseElevation + baseElevation
* (CardAdapter.MAX_ELEVATION_FACTOR - 1) * (1 - realOffset)));
}
CardView nextCard = mAdapter.getCardViewAt(nextPosition);
// We might be scrolling fast enough so that the next (or previous) card
// was already destroyed or a fragment might not have been created yet
if (nextCard != null) {
if (mScalingEnabled) {
nextCard.setScaleX((float) (1 + 0.1 * (realOffset)));
nextCard.setScaleY((float) (1 + 0.1 * (realOffset)));
}
nextCard.setCardElevation((baseElevation + baseElevation
* (CardAdapter.MAX_ELEVATION_FACTOR - 1) * (realOffset)));
}
полный код ViewPagerCards
если вы хотите сделать это, используя RecyclerView
, вы можете получить средний элемент и проверить onBindViewHolder
, если этот элемент является средним элементом, затем выполните анимацию масштабирования, чтобы узнать, чтобы получить средний, проверьте этот ответ: Получить центральный видимый элемент RecycleView при прокрутке