//点击要调的方法 private void setDialog() { Dialog mCameraDialog = new Dialog(_context, R.style.BottomDialog); LinearLayout root = (LinearLayout) LayoutInflater.from(_context).inflate( R.layout.image_dialog, null); //初始化视图 root.findViewById(R.id.btn_choose_img).setOnClickListener(this); root.findViewById(R.id.btn_open_camera).setOnClickListener(this); root.findViewById(R.id.btn_cancel).setOnClickListener(this); mCameraDialog.setContentView(root); Window dialogWindow = mCameraDialog.getWindow(); dialogWindow.setGravity(Gravity.BOTTOM); // dialogWindow.setWindowAnimations(R.style.dialogstyle); // 添加动画 WindowManager.LayoutParams lp = dialogWindow.getAttributes(); // 获取对话框当前的参数值 lp.x = 0; // 新位置X坐标 lp.y = 0; // 新位置Y坐标 lp.width = (int) getResources().getDisplayMetrics().widthPixels; // 宽度 root.measure(0, 0); lp.height = root.getMeasuredHeight(); lp.alpha = 9f; // 透明度 dialogWindow.setAttributes(lp); mCameraDialog.show(); }
在styles中有
<!--弹出栏框--> <style name="BottomDialog" parent="@android:style/Theme.Dialog"> <!-- 背景透明 --> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowContentOverlay">@null</item> <!-- 浮于Activity之上 --> <item name="android:windowIsFloating">true</item> <!-- 边框 --> <item name="android:windowFrame">@null</item> <!-- Dialog以外的区域模糊效果 --> <item name="android:backgroundDimEnabled">true</item> <!-- 无标题 --> <item name="android:windowNoTitle">true</item> <!-- 半透明 --> <item name="android:windowIsTranslucent">true</item> <!-- Dialog进入及退出动画 --> <item name="android:windowAnimationStyle">@style/DialogAnimation</item> </style> <!-- ActionSheet进出动画 --> <style name="DialogAnimation" parent="@android:style/Animation.Dialog"> <item name="android:windowEnterAnimation">@anim/dialog_in</item> <item name="android:windowExitAnimation">@anim/dialog_iout</item> </style>
在ainm文件中有两个动画dialog_in dialog_iout
<?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="200" android:fromYDelta="100%" android:toYDelta="0" />
<?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="200" android:fromYDelta="0" android:toYDelta="100%" />
本类实现按钮的点击事件
本类实现OnClickListener
然后在OnClik方法里面找到id进行设置按钮