Android:如何指定 <layer-list> 的不透明度?
Posted
技术标签:
【中文标题】Android:如何指定 <layer-list> 的不透明度?【英文标题】:Android: How to specify the opacity of a <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 【参考方案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】:我认为问题是关于在<layer-list>
中设置单个项目的不透明度,而不是以编程方式设置整个图像。
如果您已经知道颜色,请使用组合十六进制 RGBA 代码,例如:
<solid android:color="#80FF0000" />
将颜色设置为红色 (0xFF0000),不透明度为 0x80。
同样的事情也适用于其他一些项目。例如中风
<stroke android:color="#6000FF00" android:width="20dp" />
这将创建一个 0x60 不透明度的 20dp 厚的绿色描边。
此外,如果您想以编程方式进行操作,即修改特定项目的 alpha 而不是整个可绘制对象,请使用新的资源 id (android:id="@+id/...")项目并访问它。不过我还没有碰巧验证这部分。
【讨论】:
以上是关于Android:如何指定 <layer-list> 的不透明度?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 EditText inputType 指定为数字和密码?