PopupWindow自定义布局更方便,并且显示位置自由,没有任何限制。使用下面的代码并享受动画。在此动画中,使用底部滑入和滑出,但是您只能更改滑入/滑出动画,并根据您的动画对应用程序中的任何位置进行动画处理,并且还需要根据自己的动画进行动画处理,您必须更改重力->>底部,顶部等。
动画资源文件夹:
1.slide_in_bottom.xml
android:shareInterpolator="false"
>
android:duration="@integer/dialogplus_animation_default_duration"
android:fromXDelta="0%"
android:fromYDelta="100%"
android:toXDelta="0%"
android:toYDelta="0%"
/>
2.slide_out_bottom.xml:
android:shareInterpolator="false"
>
android:duration="@integer/dialogplus_animation_default_duration"
android:fromXDelta="0%"
android:fromYDelta="0%"
android:toXDelta="0%"
android:toYDelta="100%"
/>
样式:
@anim/slide_in_bottom
@anim/slide_out_bottom
方法:
private PopupWindow showOptions(Context mcon){
try{
LayoutInflater inflater = (LayoutInflater) mcon.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.popup_option_documents_type,null);
PopupWindow optionspu = new PopupWindow(layout, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
optionspu.setAnimationStyle(R.style.popup_window_animation);
optionspu.setBackgroundDrawable(new ColorDrawable(Color.WHITE));
optionspu.setFocusable(true);
optionspu.setOutsideTouchable(true);
optionspu.update(0, 0, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
optionspu.showAtLocation(layout, Gravity.BOTTOM, 0, 0);
return optionspu;
}
catch (Exception e){e.printStackTrace();
return null;}
}