Android的悬浮窗式对话框
2017-02-14 14:56
176 查看
Android中的悬浮式对话框调出后,无论是物理返回键,Home键还是锁屏键,都无法取消掉。锁定手机的不二之选!!
来看代码实现:
1、悬浮窗权限申请!悬浮窗权限申请!!悬浮窗权限申请!!! 重要的事说三遍。特别是Android6.0以后的手机,特别要注意!但是这个权限动态申请与一般的动态权限申请方式有点区别。至于怎么申请,可点击 Android 6.0悬浮窗权限申请
2、在Activity中调用,这里是通过按钮触发。也可以写在服务中!!
View的布局文件就是一个简单的线性布局 dialong_layout.xml的布局:
3、效果图如下:
来看代码实现:
1、悬浮窗权限申请!悬浮窗权限申请!!悬浮窗权限申请!!! 重要的事说三遍。特别是Android6.0以后的手机,特别要注意!但是这个权限动态申请与一般的动态权限申请方式有点区别。至于怎么申请,可点击 Android 6.0悬浮窗权限申请
2、在Activity中调用,这里是通过按钮触发。也可以写在服务中!!
private void showDialog() { View view = View.inflate(getApplicationContext(), R.layout.dialong_layout, null); AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext()); Button btn_ok = (Button) view.findViewById(R.id.btn_ok); Button btn_no = (Button) view.findViewById(R.id.btn_no); btn_ok.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getApplicationContext(), "点击了OK", Toast.LENGTH_SHORT).show(); //取消对话框 alertDialog.dismiss(); } }); btn_no.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getApplicationContext(), "点击了NO", Toast.LENGTH_SHORT).show(); } }); builder.setView(view); builder.setTitle("我是悬浮窗"); builder.setIcon(R.mipmap.ic_launcher); alertDialog = builder.create(); Window window = alertDialog.getWindow(); window.setWindowAnimations(R.style.WindowDialog); window.setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); WindowManager.LayoutParams layoutParams = window.getAttributes(); layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT; layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT; alertDialog.onWindowAttributesChanged(layoutParams); //设置弹出框失去焦点是否隐藏,即点击屏蔽其它地方是否隐藏 alertDialog.setCanceledOnTouchOutside(true); //设置按钮是否可以按返回键取消,false则不可以取消 alertDialog.setCancelable(false); alertDialog.show(); }
View的布局文件就是一个简单的线性布局 dialong_layout.xml的布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/btn_no" android:layout_width="0dp" android:layout_weight="1" android:layout_margin="10dp" android:text = "取消" android:layout_height="wrap_content"/> <Button android:id="@+id/btn_ok" android:layout_width="0dp" android:layout_weight="1" android:layout_margin="10dp" android:text = "确定" android:layout_height="wrap_content"/> </LinearLayout>
3、效果图如下:
相关文章推荐
- Android悬浮对话框(即点即关对话框)实现代码
- 2017最新详解Android中对话框之PopupWindow(悬浮框)
- Android/Ophone中的悬浮对话框和即点即关对话框
- (转)Android/Ophone中的悬浮对话框和即点即关对话框
- Android/Ophone 中的悬浮对话框和即点即关对话框
- Android实现悬浮对话框代码
- Android/Ophone中的悬浮对话框和即点即关对话框
- Android/Ophone中的悬浮对话框和即点即关对话框
- Android中的悬浮对话框和即点即关对话框
- 悬浮对话框Android代码实现
- Android使用Activity用作弹出式对话框
- Android悬浮窗口的实现
- android 当Activity中弹出对话框时,无法监听返回键
- Android进阶——自定义View之继承系统控件实现自带删除按钮动画效果和软键盘自动悬浮于文本框下方
- Android 官方推荐 : DialogFragment 创建对话框
- android dialog——自定义对话框之一
- Android常用控件之悬浮窗
- Android 仿美团网,大众点评购买框悬浮效果之修改版
- 【转】【Android】ProgressDialog进度条对话框的使用
- Android: 创建一个AlertDialog对话框,必须按确定或取消按钮才能关闭对话框,禁止按[返回键]或[搜索键]关闭