当前位置: 首页 > 知识库问答 >
问题:

如何模糊对话框活动背景

东方谦
2023-03-14

对不起我的英语:)。我需要模糊我的对话框活动背景,我尝试了这种方法

模糊警报对话框后面的背景

我用以下代码发送位图:

Bitmap back1 = takeScreenShot(MainActivity.this);
Bitmap back2 = fastblur(back1, 10);
Intent intent = new Intent(getApplicationContext(), FilterActivity.class);
intent.putExtra("back", back2);
startActivity(intent);

并在我的活动中接收位图:

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Intent intent = new Intent(getIntent());
    Bitmap back = intent.getParcelableExtra("back");
    BitmapDrawable ob = new BitmapDrawable(getResources(), back);
    getWindow().setBackgroundDrawable(ob);
    setContentView(R.layout.filter_activity);
}

但它强迫我关闭logcat中的错误:

03-08 14:03:54.685 16735-16735/ir.aftabeshafa.shafadoc E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!  (parcel size = 13225428)
03-08 14:03:54.685 16735-16735/ir.aftabeshafa.shafadoc D/AndroidRuntime: Shutting down VM
03-08 14:03:54.686 16735-16735/ir.aftabeshafa.shafadoc E/AndroidRuntime: FATAL EXCEPTION: main
                                                                         Process: ir.aftabeshafa.shafadoc, PID: 16735
                                                                         java.lang.RuntimeException: Failure from system

我怎样才能解决这个问题?或者你知道另一种模糊对话活动背景的方法吗?

共有2个答案

乔伯寅
2023-03-14

试试这个代码片段,这将为对话框创建透明的背景。

private void Dialog() {
        final Dialog dialog = new Dialog(GenerateToken.this);
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        dialog.setContentView(R.layout.customdialog_tokenvalidate);
        dialog.setCanceledOnTouchOutside(false);
        dialog.setCancelable(false);
        Window window = dialog.getWindow();
        window.setLayout(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        window.setGravity(Gravity.CENTER);
        //The below code is EXTRA - to dim the parent view by 70%
        WindowManager.LayoutParams lp = window.getAttributes();
        lp.dimAmount = 0.7f;
        lp.flags = WindowManager.LayoutParams.FLAG_DIM_BEHIND;
        dialog.getWindow().setBackgroundDrawable(new      ColorDrawable(android.graphics.Color.TRANSPARENT));
        dialog.getWindow().setAttributes(lp);
        //Show the dialog
        dialog.show();
        TextView tvSelectedBank = (TextView) dialog.findViewById(R.id.validatetext);
        //button for ok
        dialog.findViewById(R.id.tokenvalidate).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
                dialog.dismiss();
            }
        });
        dialog.show();
    }

此外,从这个线程获取帮助模糊背景AlertDialog

芮瑾瑜
2023-03-14

首先,您不应该通过Binder翻译位图,绑定器的最大容器1M。

您可以尝试以下方法:首先:

MyApplication. back2 = back2;

然后:

   @Override
protected void onCreate(Bundle savedInstanceState) {
    BitmapDrawable ob = new BitmapDrawable(getResources(),MyApplication.back2);
    getWindow().getDecorView().setBackground(ob);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.filter_activity);
}
 类似资料:
  • 我希望对话框下有模糊的屏幕,所以我拍摄活动的“截图”,模糊它,并将其设置为可位图绘制的对话框窗口背景。奇怪的是对话框不再集中在屏幕上,即使调用了setCanceledOnTouchOutside(true),触摸外部对话框也不会关闭它。 问题是:为什么这不起作用?分别如何创建背景模糊的对话框?

  • 我试图在AlertDialog后面有一个模糊的背景。该过程如下所示:拍摄活动的屏幕截图并将其模糊,然后将其保存到位图中。然后将此位图转换为可绘制位图。然后,我使用这行代码

  • 正如我们从API 14知道的,下面的模糊已经被弃用 有没有其他方法可以使屏幕模糊我已经尝试过快速模糊

  • 当打开按钮点击事件的对话框时,我正在为背景图像模糊制作应用程序,它适用于api级别8(姜饼)和api级别14(ICS),而不是背景图像模糊它唯一的变暗背景,如浅黑色,我所做的,提前感谢 这是在Android2.3和4.0上运行的代码不起作用,

  • 问题内容: 基本上 在一个活动中,我有一个ListView。当我选择一个项目时,一个透明活动将作为一个小框打开。出现此框时,您仍然可以查看以前的活动屏幕, 我要弄清楚的是如何使上一个屏幕变得模糊,例如此处链接的图像(忽略UI,只看模糊的草皮区域)。 这怎么可能? 感谢您的任何建议。 问题答案: 对于API <14,您可以使用该标志,但是已弃用该标志,并且高级API不再支持内置模糊处理 但是,您可以

  • 如何将数据从活动传递到对话框? 有关更多详细信息,请参阅下图: