android 两张图片动画,android – 使用AnimatorSet在两个视图之间实现卡片翻转动画...

我正在制作一个汉字卡片应用程序.我希望有一个LinearLayout代表前面,另一个代表卡的背面,我已经在一个XML布局中声明了.

问题是,第二个LinearLayout总是不可见的,第一个正常动画.

无论如何在动画进行时进行方法调用?我想将第一个布局的可见性设置为GONE,将第二个布局的可见性设置为VISIBLE?

或者是否有另一种更好的方法来实现翻转卡?

以下是我的代码.预先感谢.

FlashcardsFragment.java

public class FlashcardsFragment extends Fragment

{

private AnimatorSet showFrontAnim = new AnimatorSet();

private AnimatorSet showBackAnim = new AnimatorSet();

private boolean isShowingBack = false;

@Override

public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState)

{

View v = inflater.inflate(R.layout.fragment_flashcard,container,false);

LinearLayout cardFront = (LinearLayout) v.findViewById(R.id.card_front_layout);

LinearLayout cardBack = (LinearLayout) v.findViewById(R.id.card_back_layout);

// Load the animator sets from XML and group them together

AnimatorSet leftIn = (AnimatorSet) AnimatorInflater

.loadAnimator(getActivity(),R.animator.card_flip_left_in);

AnimatorSet rightOut = (AnimatorSet) AnimatorInflater

.loadAnimator(getActivity(),R.animator.card_flip_right_out);

AnimatorSet leftOut = (AnimatorSet) AnimatorInflater

.loadAnimator(getActivity(),R.animator.card_flip_left_out);

AnimatorSet rightIn = (AnimatorSet) AnimatorInflater

.loadAnimator(getActivity(),R.animator.card_flip_right_in);

leftIn.setTarget(cardFront);

rightOut.setTarget(cardBack);

showFrontAnim.playTogether(leftIn,rightOut);

leftOut.setTarget(cardFront);

rightIn.setTarget(cardBack);

showBackAnim.playTogether(leftOut,rightIn);

LinearLayout cardContainer = (LinearLayout)

v.findViewById(R.id.card_container_layout);

// Set the flip animation to be triggered on container clicking

cardContainer.setOnClickListener(new View.OnClickListener()

{

@Override

public void onClick(View v)

{

if (isShowingBack) {

showFrontAnim.start();

isShowingBack = false;

}

else {

showBackAnim.start();

isShowingBack = true;

}

}

});

return v;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值