我已经知道如何设置背景图像的不透明度,但我需要设置形状对象的不透明度.
在我的Android应用中,我喜欢这样:
我希望这个黑色区域有点透明,就像这里一样,例如我可以通过这个"欢迎......"看到圆圈:
这是我的形状代码:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/shape_my"">
<stroke android:width="4dp" android:color="#636161" />
<padding android:left="20dp"
android:top="20dp"
android:right="20dp"
android:bottom="20dp" />
<corners android:radius="24dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
Oct*_*ean 186
通常,您只需在创建形状时定义略微透明的颜色.
您可以通过设置颜色alpha通道来实现这一点.
#FF000000
会给你一个坚实的黑色,而#00000000
你会得到一个100%透明的黑色(显然它不是黑色).
颜色方案是这样的,#AARRGGBB
其中A代表alpha通道,R代表红色,G代表绿色,B代表蓝色.
如果您在Java中设置颜色,则同样适用.它只会看起来像0xFF000000
.
UPDATE
在您的情况下,您必须添加一个solid
节点.如下.
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/shape_my"">
<stroke android:width="4dp" android:color="#636161" />
<padding android:left="20dp"
android:top="20dp"
android:right="20dp"
android:bottom="20dp" />
<corners android:radius="24dp" />
<solid android:color="#88000000" />
</shape>
Run Code Online (Sandbox Code Playgroud)
这里的颜色是半透明的黑色.
Pha*_*inh 17
除了将 alpha 转换为十六进制值之外,我们还可以使用颜色状态列表来定义 alpha。
资源/值/colors.xml
<color name="colorPrimary">#0000FF</color>
Run Code Online (Sandbox Code Playgroud)
资源/颜色/color_primary_20.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:alpha="0.2" android:color="?attr/colorPrimary" />
</selector>
Run Code Online (Sandbox Code Playgroud)
res/drawable/a_shape.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<stroke
android:width="2dp"
android:color="@color/color_primary_20" />
</shape>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
85708 次 |
最近记录: |