PopupWindow总结分析:
View v = getLayoutInflater().inflate(R.layout.popwindow,null);
<span style="font-size:18px;">// 设置两种方式
// 第一种 传三个参数:1: 布局 后两个为它的宽高分布
PopupWindow popupWindow = new PopupWindow(v, ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
// 这个可以控制popupwindow的隐藏,可以实现点击popupwindow以外的区域时隐藏popupwindow,
// 还有一个功能就是响应back键。实现按back键可以隐藏popupwindow的功能。
popupWindow.setBackgroundDrawable(new BitmapDrawable());
// 使其他区域可以点击
popupWindow.setOutsideTouchable(true);
// 获取焦点 可点击
popupWindow.setFocusable(true);
popupWindow.setTouchable(true);
// 1 在view下方出现 view是你选择的view,在这个view下面
// popupWindow.showAsDropDown(view,0,0);
// 2 自定义window的位置 view是父布局
popupWindow.showAtLocation(view, Gravity.CENTER,0,0);</span></span>
<span style="font-size:18px;">// 第二种 传一个参数,单独设置它的宽高
PopupWindow window = new PopupWindow(MyActivity.this);
window.setHeight(200);
window.setWidth(600);
window.setContentView(v);
window.setOutsideTouchable(true);
window.showAsDropDown(view, 0, 0);
</span>
/ / 另外设置他进入的动画效果 ,在show之前
popupWindow.setAnimationStyle(R.style.bottomStyle);
<style name="bottomStyle">
<item name="android:windowEnterAnimation">@anim/bottom_pup_anim_out</item>
<item name="android:windowExitAnimation">@anim/bottom_pup_anim_in</item>
</style>
在自定义文件夹anim下:
// bottom_pup_anim_out
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="300"
android:fromXDelta="0"
android:fromYDelta="100%p"
android:toXDelta="0"
android:toYDelta="0%p" />
</set>
// bottom_pup_anim_in
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="300"
android:fromXDelta="0"
android:fromYDelta="0%p"
android:toXDelta="0"
android:toYDelta="100%p" />
</set>
<span style="font-size:18px;">mMoreWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
mAnContent.setBackgroundResource(R.color.white);
}
});</span>