1.创建popupwindow要显示的界面布局。
2.在Activity中加载该布局
View view = LayoutInflater.from(context).inflate(R.layout.xxx,null,false);
view.findViewById(R.id.xxx); //声明控件,做初始化
3.构造一个popupwindow
new popupwindow(view,ViewGroup.LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
//参数1:view 参数2:宽 参数3:高
4.设置加载动画
popupwindow.setAnimationStyle(R.style.anim_pop);
5.设置弹出和消失的动画 (在res文件夹下创建anim文件夹,建立xxx.xml文件)
<set xmlns:android:......>
<alpha android:duration="1000" //持续时间
android:fromAlpha="0.01"
android:toAlpha="1"/>
<translate android:druation="300"
android:fromYDelta="100.0%"
android:toYDelta="0.0"/>
</set>
6.设置点击非popuwindow区域,popupwindow会消失
popupwindow.setOutsideTouchable(true);
popupwindow.setTouchInterceptor(new View.onTouchListener(){
public boolean onTouch(View v,MotionEvent event){
return false;
//如果返回true,touch事件将被拦截,拦截后onTouchEvent不被调用,这样点击外部区域无法dismiss.
}
});
7.设置背景
popupwindow.setBackgroundDrawable(new colorDrawable(0x00000000));
8.设置popupwindow的显示位置
popuwindow.showAsDropDown(v,50,0); //参数1:参照物v 参数2:x轴的偏移量 参数3:y轴的偏移量
9.设置控件的点击事件
10.设置popupwindow显示在底部
popupwindow.showAtLocation(父布局id,Gravity.BOTTOM,0,0);