1.新建一个类,继承PopupWindow,整体是这样的
public class SortBigImagePopwindow extends PopupWindow { private ImageView imageView; private View mMenuView; private LinearLayout ll_back; public SortBigImagePopwindow(Context context, String path, String name) { super(context); LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); mMenuView = inflater.inflate(R.layout.activity_sortbigimage, null); imageView = mMenuView.findViewById(R.id.iv_big_image); Glide.with(context).load(path).into(imageView); // 设置SelectPicPopupWindow的View this.setContentView(mMenuView); // 设置SelectPicPopupWindow弹出窗体的宽 this.setWidth(ViewGroup.LayoutParams.MATCH_PARENT); // 设置SelectPicPopupWindow弹出窗体的高 this.setHeight(ViewGroup.LayoutParams.MATCH_PARENT); // 设置SelectPicPopupWindow弹出窗体可点击 this.setFocusable(true); // 实例化一个ColorDrawable颜色为半透明 ColorDrawable dw = new ColorDrawable(0xb0000000); // 设置SelectPicPopupWindow弹出窗体的背景 this.setBackgroundDrawable(dw); // mMenuView添加OnTouchListener监听判断获取触屏位置如果在选择框外面则销毁弹出框 mMenuView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dismiss(); } }); } }
2.在列表的条目点击事件中写,第二个参数是图片的url
SortBigImagePopwindow sortBigImagePopwindow = new SortBigImagePopwindow(mContext, bean.getImage(), ""); sortBigImagePopwindow.setAnimationStyle(R.style.sortbigimage_pop); View rootview = LayoutInflater.from(mContext).inflate(R.layout.activity_sortingdetails, null); sortBigImagePopwindow.showAtLocation(rootview, Gravity.CENTER, 0, 0);
3.给设置的动画是在style中写
<style name="sortbigimage_pop" parent="android:Animation"> <item name="android:windowEnterAnimation">@anim/pop_in</item> <item name="android:windowExitAnimation">@anim/pop_gone</item> </style>
4.这是pop弹出和消失时的的动画
动画弹出:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="200"> <scale android:fromXScale="0.0" android:fromYScale="0.0" android:pivotX="50%" android:pivotY="50%" android:toXScale="1.0" android:toYScale="1.0" /> </set>
动画消失:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="10"> <scale android:fromXScale="1.0" android:fromYScale="1.0" android:pivotX="50%" android:pivotY="50%" android:toXScale="0.0" android:toYScale="0.0" /> </set>
5.全文完。