package com.example.linjun.sweepingrobot.userviews;
import android.content.Context;
import android.util.DisplayMetrics;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.widget.PopupWindow;
import com.example.linjun.sweepingrobot.R;
/**
* Created by Vander on 2018/8/17.
*/
public class MyPopupWindow {
PopupWindow window;
Context mContext;
View baseView;
WindowManager wm;
DisplayMetrics dm = new DisplayMetrics();
public interface OnDismissListener{
void onDismiss();
}
OnDismissListener mOnDismissListener;
public void setOnDismissListener(OnDismissListener listener){
mOnDismissListener = listener;
}
public MyPopupWindow(Context context, View baseView){
this.mContext = context;
this.baseView = baseView;
wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
wm.getDefaultDisplay().getMetrics(dm);
View contentView = LayoutInflater.from(context).inflate(R.layout.dialog_more_btn, null, false);
window = new PopupWindow(contentView, (int)(dm.widthPixels - dip2px(2)), (int)dip2px(32f), true);
//window.setFocusable(false);
window.setOutsideTouchable(true);
window.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
if(mOnDismissListener != null) {
mOnDismissListener.onDismiss();
}
}
});
}
public float dip2px(float dpValue) {
float scale = mContext.getResources().getDisplayMetrics().density;
return (dpValue * scale + 0.5f) * 5f;
}
public void showWindow(int x, int y){
if(window != null){
if(window.isShowing()){
window.dismiss();
}
window.showAtLocation(baseView, 0, (int)dip2px(x), y);
}
}
public int getWindowWidth(){
return window.getWidth();
}
public int getWindowHeight(){
return window.getHeight();
}
public boolean isShowing(){
if(window != null){
return window.isShowing();
}
return false;
}
public void dismiss(){
if (window != null){
if (window.isShowing()){
window.dismiss();
}
}
}
}