package com.zyyoona7.easypopup.easypop; import android.content.Context; import android.view.Gravity; import android.view.View; import com.blankj.utilcode.util.ScreenUtils; import com.zyyoona7.easypopup.R; import com.zyyoona7.popup.BasePopup; public class EverywherePopup extends BasePopup<EverywherePopup> { public static EverywherePopup create(Context context) { return new EverywherePopup(context); } private EverywherePopup(Context context) { setContext(context); } @Override protected void initAttributes() { setContentView(R.layout.layout_everywhere_pop) .setAnimationStyle(R.style.LeftTopPopAnim); } @Override protected void initViews(View view, EverywherePopup basePopup) { // setOnRealWHAlreadyListener(new OnRealWHAlreadyListener() { // @Override // public void onRealWHAlready(BasePopup basePopup, int popWidth, int popHeight, int anchorW, int anchorH) { // // } // }); } /** * 自适应触摸点 弹出 * @param parent * @param touchX * @param touchY * @return */ public EverywherePopup showEverywhere(View parent,int touchX, int touchY) { // if (isRealWHAlready()) { int screenHeight = ScreenUtils.getScreenHeight(); int screenWidth = ScreenUtils.getScreenWidth(); int offsetX=touchX; int offsetY=touchY; if (touchX<getWidth() && screenHeight-touchY<getHeight()){ //左下弹出动画 getPopupWindow().setAnimationStyle(R.style.LeftBottomPopAnim); offsetY=touchY-getHeight(); }else if (touchX+getWidth()>screenWidth && touchY+getHeight()>screenHeight){ //右下弹出动画 getPopupWindow().setAnimationStyle(R.style.RightBottomPopAnim); offsetX=(touchX-getWidth()); offsetY=touchY-getHeight(); }else if (touchX+getWidth()>screenWidth){ getPopupWindow().setAnimationStyle(R.style.RightTopPopAnim); offsetX=(touchX-getWidth()); }else { getPopupWindow().setAnimationStyle(R.style.LeftTopPopAnim); } showAtLocation(parent, Gravity.NO_GRAVITY,offsetX,offsetY); // } return this; } }