package com.cheng.animationstudy.activity; import android.graphics.drawable.BitmapDrawable; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.Button; import android.widget.LinearLayout; import android.widget.PopupWindow; import android.widget.TextView; import com.cheng.animationstudy.C; import com.cheng.animationstudy.R; import com.cheng.utils.Logger; import com.cheng.utils.ViewFinder; /** * 仿淘宝购买商品主页后缩 */ public class ImitateTaobaoRetractionActivity extends AppCompatActivity { private TextView mLogoutTV; private View mRootView; /** * 显示父类的POP 推出 */ PopupWindow mPopupWindow; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.mRootView = LayoutInflater.from(this).inflate(R.layout.activity_imitatetaobaoretraction, null); setContentView(mRootView); initView(); } private void initView() { this.mLogoutTV = ViewFinder.findViewById(this, R.id.tv_logout); this.mLogoutTV.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { shouPop(); } }); } private void shouPop() { // Animation scaleAnimation = new ScaleAnimation(1.0f, 0.9f, 1.0f, 0.9f) // 整个屏幕就0.0到1.0的大小//缩放 // Animation.ZORDER_BOTTOM, 1.0f, Animation.RESTART, 1.0f); // scaleAnimation.setDuration(1000); // scaleAnimation.setFillAfter(true); // mRootView.startAnimation(scaleAnimation); final Animation scaleAnimation = AnimationUtils.loadAnimation(this, R.anim.sda_taobaopop_anim); scaleAnimation.setDuration(C.Int.ANIM_DURATION * 2); scaleAnimation.setFillAfter(true); mRootView.startAnimation(scaleAnimation); LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE); View layout = inflater.inflate(R.layout.pop_imitatetaobao_logout, null); layout.getBackground().setAlpha(220); Button sureBtn = ViewFinder.findViewById(layout, R.id.btn_sure); Button cancelBtn = ViewFinder.findViewById(layout, R.id.btn_cancel); sureBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mPopupWindow == null) return; mPopupWindow.dismiss(); } }); cancelBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mPopupWindow == null) return; mPopupWindow.dismiss(); mRootView.clearAnimation(); } }); mPopupWindow = shwoPop(LinearLayout.LayoutParams.MATCH_PARENT, 0, false, Gravity.BOTTOM, layout, layout); } private PopupWindow shwoPop(int witch, int hight_bottom, boolean isDown, int gravity, View... views) { PopupWindow popWindow = new PopupWindow(views[0], witch, LinearLayout.LayoutParams.MATCH_PARENT); popWindow.setOutsideTouchable(true); popWindow.setFocusable(true); popWindow.setTouchable(true); popWindow.setBackgroundDrawable(new BitmapDrawable());// 点击空白时popupwindow关闭 int[] location = new int[2]; try { views[1].getLocationOnScreen(location); popWindow.showAtLocation(views[1], gravity, 10, hight_bottom); popWindow.update(); } catch (Exception e) { Logger.e(e); } return popWindow; } }