【问题标题】:Theme.Translucent fails on ICSTheme.Translucent 在 ICS 上失败
【发布时间】:2012-01-06 23:01:55
【问题描述】:

我正在使用: android:theme="@android:style/Theme.Translucent.NoTitleBar"

结合: getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND, WindowManager.LayoutParams.FLAG_BLUR_BEHIND);

为了获得漂亮的透明背景模糊效果,模拟对话框样式。

这在 2.3 及更低版本上效果很好,但在运行 ICS / 3.0 及更高版本的设备上它是纯色(读取不透明)。我知道他们引入了全息主题,似乎没有特定的 Theme.Holo.Translucent 主题。关于如何在 ICS 和旧版本上获得半透明背景的任何想法,我不反对使用 values-v11 中定义的单独主题。

【问题讨论】:

  • 看起来这不会解决您的问题,但如果您错过了它:Holo everywhere
  • 您能否指定正在运行的设备? Theme.Translucent.NoTitleBar 是否适用于新创建的最小 Android 项目? android:hardwareAccelerated true/false 有影响吗? 标签中的各种属性组合是否有所不同(即不同的兼容模式)?
  • 刚刚创建了一个具有最少清单(自动生成)的新项目并添加了主题。适用于我的 2.3 设备,但不适用于 Galaxy Nexus。 android:hardwareAccelerated 似乎没有影响它或使用-sdk。

标签: android themes android-4.0-ice-cream-sandwich


【解决方案1】:

使用

dialog.getWindow().setBackgroundDrawable(new ColorDrawable(0)); 

或扩展 Theme.Translucent.NoTitleBar 并添加

<item name="android:windowBackground">@android:color/transparent</item>

【讨论】:

  • 我能够通过使用更新的 ActionbarSherlock 主题来实现这一点。
【解决方案2】:

似乎他们不赞成使用模糊,至少 FLAG_BLUR_BEHIND:

public static final int FLAG_BLUR_BEHIND

不推荐使用此常量。不再支持模糊。

【讨论】:

  • 很好的发现,但即使我删除它,我仍然无法从主题中获得透明度。所以虽然这是一个很好的提示,但它实际上并不能解决我的问题:(
猜你喜欢
  • 1970-01-01
  • 2012-10-05
  • 2012-03-17
  • 1970-01-01
  • 1970-01-01
  • 2012-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多