Android: 如何指定<layer-list>的不透明度?

6
我希望我的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。 - Mark
3个回答

1

我认为这个问题是关于在<layer-list>内设置单个项目的不透明度,而不是整个图像的编程。

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

<solid android:color="#80FF0000" />

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

同样的方法也适用于其他一些项目,例如描边

<stroke android:color="#6000FF00" android:width="20dp" />

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

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


0
为了实现半透明效果,例如50%的不透明度,请使用以下代码: Drawable d = new ColorDrawable(Color.BLACK);
d.setAlpha(130);
mDialog.getWindow().setBackgroundDrawable(d);
其中的'130'可以根据需要更改(0-255),以达到所需的不透明度。

-1

android:opacity属性仅支持在layer-list中使用translucent|opaque|transparent三种取值。

顺便问一下,您有什么需求吗?

更新的答案: 要将透明度/可见度设置为80%,您需要将其设置为您的视图。

android:alpha="0.8"


要求:使图像不那么明显(这是一张背景图像,仅用于样式) - Nicolas Raoul
@NicolasRaoul 抱歉这么晚才回复你。据我理解,您正在将您创建的layerList作为ImageView或其他视图中的背景可绘制项使用@drawable/layer_list。要将透明度/图像变得不太明显,设置为80%,您需要设置 android:alpha="0.8" - Jagadeesh
我已经转向另一个解决方案,所以不会很快测试这个,但我接受它作为唯一的答案。 - Nicolas Raoul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接