在通话屏幕上添加弹出对话框

时间:2014-12-07 11:18:51

标签: java android

如何在通话屏幕上添加弹出对话框?我将使用BroadcastReceiver来收听来电并显示它。我需要了解如何编写一个允许对来电进行对话的活动。另外,如何使对话框移动到屏幕的任何部分?我已经实现了BroadcastRceiver并执行了其他功能,因此我可以使用一个意图并从此BroadcastRceiver启动活动

2 个答案:

答案 0 :(得分:0)

启动一项活动,然后使用该活动中的AlertDialog Builder提示对话

设置自定义视图以自定义对话框外观

答案 1 :(得分:0)

试试这个

  AlertDialog.Builder builder = new AlertDialog.Builder(context.getApplicationContext());
            LayoutInflater inflater = LayoutInflater.from(context);
            View dialogView = inflater.inflate(R.layout.caller_dialog, null);

            ImageView button = dialogView.findViewById(R.id.close_btn);
            builder.setView(dialogView);
            final AlertDialog alert = builder.create();
            alert.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
            alert.getWindow().setType(WindowManager.LayoutParams.TYPE_PHONE);
            alert.setCanceledOnTouchOutside(true);
            alert.show();
            WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
            Window window = alert.getWindow();
            window.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
            window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
            window.setGravity(Gravity.TOP);
            lp.copyFrom(window.getAttributes());
            //This makes the dialog take up the full width
            lp.width = WindowManager.LayoutParams.MATCH_PARENT;
            lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
            window.setAttributes(lp);
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    //close the service and remove the from from the window
                    alert.dismiss();
                }
            });