【问题标题】:Android dim Dialog background doesn't work as expectedAndroid 暗淡对话框背景无法按预期工作
【发布时间】:2014-10-14 09:50:27
【问题描述】:

我正在尝试创建一个带有自定义进度条的简单对话框。 但由于某种原因,我只能使背景完全半透明(通过添加 Theme_Translucent_NoTitle)或完全变暗(通过从主题中删除半透明)。

不过,我想做的是能够玩转暗淡的数量。代码如下:

public class ProgressWheelDialog extends Dialog{

private ProgressWheel pw;

public ProgressWheelDialog(final Context ctx) {
    // to make transparent  background, add Translucent after Theme_
    super(ctx, android.R.style.Theme_NoTitleBar);
    setContentView(R.layout.dialog_progresswheel);

    // dim background
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
    WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
    layoutParams.dimAmount = .5f;
    getWindow().setAttributes(layoutParams);

    // get and spin progress wheel
    pw = (ProgressWheel) findViewById(R.id.pw_spinner);
    pw.setVisibility(ProgressWheel.VISIBLE);
    pw.spin();
}

我做错了什么?上面的代码使屏幕完全变暗(当然除了进度条)

【问题讨论】:

  • 调用“getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);”在“getWindow().setAttributes(layoutParams);”之后
  • @kozaxinan 它仍然无法正常工作

标签: java android dialog themes


【解决方案1】:

您需要在显示对话框后设置暗淡。

    dialog.show();
    WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
    lp.dimAmount=0.5f; // Dim level. 0.0 - no dim, 1.0 - completely opaque
    dialog.getWindow().setAttributes(lp);

【讨论】:

  • 如何使用这些值?尝试将 7 更改为其他数字,但看起来一样
  • 只需微调暗度值,直到我满意为止。我可以在 0.0 到 1.0 之间播放。
  • 事实上,它甚至不起作用。无论我在里面放什么值,背景似乎都是半透明的。
  • 这是一个实例:bit.ly/1yygfac 例如尝试放置 0x19191919,根据这里是我想要的颜色,但没有结果:w3schools.com/tags/ref_colorpicker.asp?colorhex=000000
  • 您是否删除了暗码并在您调用此对话框的位置写下了我的答案?我尝试使用 alertdialog 并成功调暗背景。 @Jjang
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-20
  • 2015-05-27
  • 1970-01-01
相关资源
最近更新 更多