【问题标题】:Android: How to specify the opacity of a <layer-list>?Android:如何指定 <layer-list> 的不透明度?
【发布时间】:2013-01-11 14:01:56
【问题描述】:

我希望我的 LayerList 的不透明度为 80,所以我写道:

<layer-list
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:opacity="80">

但我明白了:

Error: Integer types not allowed (at 'opacity' with value '80')

如何指定不透明度?

【问题讨论】:

  • 如果你能那样做 - 我不确定图层列表。这将被称为 android:alpha

标签: android android-layout opacity layer-list


【解决方案1】:

android:opacity 仅支持 layer-list 中的 translucent|opaque|transparent 值。

顺便问一下,你的要求是什么?

更新答案: 要将 opacity/less-visible 设置为 80%,您需要设置为您的视图

android:alpha="0.8"

【讨论】:

  • 要求:让图片不那么显眼(是背景图片,只是为了风格)
  • @NicolasRaoul 抱歉没有回复你。根据我的理解,您正在使用您创建的 layerList 作为 ImageView 或其他使用 @drawable/layer_list 的视图中的背景可绘制对象。要将不透明度/图像不那么可见设置为 80%,您需要设置 android:alpha="0.8"
  • (我同时切换到另一个解决方案,所以我不会很快测试这个,但我接受,因为它是唯一的答案)
【解决方案2】:

要提供半透明效果,比如 50% 的不透明度,请使用:

Drawable d = new ColorDrawable(Color.BLACK);
d.setAlpha(130);
mDialog.getWindow().setBackgroundDrawable(d);

“130”可以更改 (0-255) 以获得所需的不透明度。

【讨论】:

    【解决方案3】:

    我认为问题是关于在&lt;layer-list&gt; 中设置单个项目的不透明度,而不是以编程方式设置整个图像。

    如果您已经知道颜色,请使用组合十六进制 RGBA 代码,例如:

    &lt;solid android:color="#80FF0000" /&gt;

    将颜色设置为红色 (0xFF0000),不透明度为 0x80。

    同样的事情也适用于其他一些项目。例如中风

    &lt;stroke android:color="#6000FF00" android:width="20dp" /&gt;

    这将创建一个 0x60 不透明度的 20dp 厚的绿色描边。

    此外,如果您想以编程方式进行操作,即修改特定项目的 alpha 而不是整个可绘制对象,请使用新的资源 id (android:id="@+id/...")项目并访问它。不过我还没有碰巧验证这部分。

    【讨论】:

      猜你喜欢
      • 2011-01-04
      • 1970-01-01
      • 1970-01-01
      • 2013-01-04
      • 2016-02-08
      • 2013-02-11
      • 2012-11-15
      • 2012-03-05
      • 2014-01-05
      相关资源
      最近更新 更多