package com.flyco.dialogsamples.extra; import android.animation.ObjectAnimator; import android.content.Context; import android.view.View; import android.widget.LinearLayout; import com.flyco.animation.BaseAnimatorSet; import com.flyco.dialog.widget.base.BottomBaseDialog; import com.flyco.dialogsamples.R; import com.flyco.dialogsamples.utils.T; import butterknife.Bind; import butterknife.ButterKnife; public class IOSTaoBaoDialog extends BottomBaseDialog<IOSTaoBaoDialog> { @Bind(R.id.ll_wechat_friend_circle) LinearLayout mLlWechatFriendCircle; @Bind(R.id.ll_wechat_friend) LinearLayout mLlWechatFriend; @Bind(R.id.ll_qq) LinearLayout mLlQq; @Bind(R.id.ll_sms) LinearLayout mLlSms; public IOSTaoBaoDialog(Context context, View animateView) { super(context, animateView); } public IOSTaoBaoDialog(Context context) { super(context); } @Override public View onCreateView() { View inflate = View.inflate(mContext, R.layout.dialog_ios_taobao, null); ButterKnife.bind(this, inflate); return inflate; } @Override public void setUiBeforShow() { mLlWechatFriendCircle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { T.showShort(mContext, "朋友圈"); dismiss(); } }); mLlWechatFriend.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { T.showShort(mContext, "微信"); dismiss(); } }); mLlQq.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { T.showShort(mContext, "QQ"); dismiss(); } }); mLlSms.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { T.showShort(mContext, "短信"); dismiss(); } }); } private BaseAnimatorSet mWindowInAs; private BaseAnimatorSet mWindowOutAs; @Override protected BaseAnimatorSet getWindowInAs() { if (mWindowInAs == null) { mWindowInAs = new WindowsInAs(); } return mWindowInAs; } @Override protected BaseAnimatorSet getWindowOutAs() { if (mWindowOutAs == null) { mWindowOutAs = new WindowsOutAs(); } return mWindowOutAs; } class WindowsInAs extends BaseAnimatorSet { @Override public void setAnimation(View view) { ObjectAnimator rotationX = ObjectAnimator.ofFloat(view, "rotationX", 10, 0f).setDuration(150); rotationX.setStartDelay(200); animatorSet.playTogether( ObjectAnimator.ofFloat(view, "scaleX", 1.0f, 0.8f).setDuration(350), ObjectAnimator.ofFloat(view, "scaleY", 1.0f, 0.8f).setDuration(350), // ObjectAnimator.ofFloat(view, "alpha", 1.0f, 0.5f).setDuration(350), ObjectAnimator.ofFloat(view, "rotationX", 0f, 10).setDuration(200), rotationX, ObjectAnimator.ofFloat(view, "translationY", 0, -0.1f * mDisplayMetrics.heightPixels).setDuration(350) ); } } class WindowsOutAs extends BaseAnimatorSet { @Override public void setAnimation(View view) { ObjectAnimator rotationX = ObjectAnimator.ofFloat(view, "rotationX", 10, 0f).setDuration(150); rotationX.setStartDelay(200); animatorSet.playTogether( ObjectAnimator.ofFloat(view, "scaleX", 0.8f, 1.0f).setDuration(350), ObjectAnimator.ofFloat(view, "scaleY", 0.8f, 1.0f).setDuration(350), // ObjectAnimator.ofFloat(view, "alpha", 1.0f, 0.5f).setDuration(350), ObjectAnimator.ofFloat(view, "rotationX", 0f, 10).setDuration(200), rotationX, ObjectAnimator.ofFloat(view, "translationY", -0.1f * mDisplayMetrics.heightPixels, 0).setDuration(350) ); } } }