Android 控件——利用Dialog实现底部弹出对话框
来源:互联网 发布:刺客信条主角排名知乎 编辑:程序博客网 时间:2024/05/16 10:21
前言: 实现底部弹框的方式有多种,下面来说说我目前项目中使用到的一种方式效果图如下
使用情景:当用户触发某一事件的时候即可弹出此页面,具体来看看代码是怎么实现的。
(1)在Activity页面中调用如下代码
Dialog mCameraDialog = new Dialog(this, R.style.my_dialog);LinearLayout root = (LinearLayout) LayoutInflater.from(this).inflate(R.layout.layout_camera_control, null);root.findViewById(R.id.btn_open_camera).setOnClickListener(btnlistener);root.findViewById(R.id.btn_choose_img).setOnClickListener(btnlistener);root.findViewById(R.id.btn_cancel).setOnClickListener(btnlistener);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 = -20; // 新位置Y坐标lp.width = (int) getResources().getDisplayMetrics().widthPixels; // 宽度//lp.height = WindowManager.LayoutParams.WRAP_CONTENT; // 高度//lp.alpha = 9f; // 透明度root.measure(0, 0);lp.height = root.getMeasuredHeight();lp.alpha = 9f; // 透明度dialogWindow.setAttributes(lp);mCameraDialog.show();
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#ffffff" android:gravity="center" android:orientation="vertical" android:paddingBottom="43dp" android:paddingLeft="22.5dp" android:paddingRight="22.5dp" android:paddingTop="46dp" > <Button android:id="@+id/btn_open_camera" android:layout_width="fill_parent" android:layout_height="42dip" android:background="@drawable/btn_done_selector" android:gravity="center" android:text="拍照" android:textColor="#ffffff" android:textSize="18sp" /> <Button android:id="@+id/btn_choose_img" android:layout_width="fill_parent" android:layout_height="42dip" android:layout_marginTop="16dip" android:background="@drawable/btn_done_selector" android:gravity="center" android:text="从相册中选择" android:textColor="#ffffff" android:textSize="18sp" /> <Button android:id="@+id/btn_cancel" android:layout_width="fill_parent" android:layout_height="42dip" android:layout_marginTop="16dip" android:background="@drawable/btn_round_selector" android:gravity="center" android:text="取消" android:textColor="#888888" android:textSize="18sp" /></LinearLayout>
(3)R.style.my_dialog的样式
<style name="my_dialog"> <item name="android:windowNoTitle">true</item> <item name="android:backgroundDimEnabled">true</item> </style>
(4) 添加R.style.dialogstyle的动画样式
<span style="font-size:18px;"><style name="dialogstyle" parent="android:Animation"> <item name="@android:windowEnterAnimation">@anim/dialog_enter</item> <item name="@android:windowExitAnimation">@anim/dialog_exit</item> </style></span>
(5) @anim/dialog_enter 样式
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromYDelta="100%p" android:duration="400"/></set>
(6) @anim/dialog_exit 样式
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:toYDelta="100%p" android:duration="400"/></set>
(7) 处理相应的点击事件
private View.OnClickListener btnlistener = new View.OnClickListener() {@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn_open_camera: // 打开照相机break;// 打开相册case R.id.btn_choose_img:break;// 取消case R.id.btn_cancel:if (mCameraDialog != null) {mCameraDialog.dismiss();}break;}}};
3 0
- Android 控件——利用Dialog实现底部弹出对话框
- Android 控件——利用Dialog实现底部弹出对话框
- Android 实现屏幕底部弹出Dialog
- Android之dialog实现底部出现对话框
- Android安卓用Dialog对话框简单并且完美实现popupWindow底部弹出效果,有动画效果
- android Dialog 底部弹出
- android 弹出底部dialog
- Android底部弹出Dialog
- Android实现对话框控件Dialog
- Android 实现底部弹出对话框效果
- Android 底部弹出对话框
- Android中Dialog实现自定义弹出对话框
- Android 弹出对话框Dialog
- Android 弹出对话框Dialog
- Android 弹出对话框Dialog
- Android 弹出对话框Dialog
- Android 弹出对话框Dialog
- Dialog 实现底部弹出菜单
- Linux常用经典命令
- 田蕴章书法讲座《每日一题,每日一字》(6) 文字整理 -- 书法用笔
- EXSI 5.5 虚拟机,使用*-flat.vmdk恢复的方法
- LeetCode Combination Sum
- mySQL 性能优化
- Android 控件——利用Dialog实现底部弹出对话框
- 一张酷图帮你集齐所有git命令
- 跨域请求之jQuery的ajax jsonp的使用
- 对Map排序
- iOS开发数据库篇—SQL语句
- 《Java编程思想》学习笔记14——I/O高级
- Struts2不用Struts标签显示表单校验提示信息
- 关于高德地图出现 INVALID_USER_SCODE 问题
- 《Java编程思想》学习笔记15——对象序列化