5

我希望我的 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')

如何指定不透明度?

4

3 回答 3

0

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

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

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

于 2014-02-13T13:33:24.233 回答
0

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

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

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

android:alpha="0.8"

于 2013-01-28T09:22:53.060 回答
0

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

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

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

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

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

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

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

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

于 2018-12-24T15:47:23.963 回答