如何设置形状不透明度?

时间:2011-04-13 09:17:15

标签: android graphics

我已经知道如何设置背景图像的不透明度,但我需要设置形状对象的不透明度。

在我的Android应用中,我喜欢这样: enter image description here

我希望这个黑色区域有点透明,就像这里一样,例如我可以通过这个“欢迎......”看到圈子:

enter image description here

这是我的形状代码:

<?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>

我该怎么做?

3 个答案:

答案 0 :(得分:178)

通常,您只需在创建形状时定义略微透明的颜色。

您可以通过设置颜色alpha通道来实现。

#FF000000会给你一个坚实的黑色,而#00000000会让你100%透明黑色(显然它不再是黑色)。

配色方案如下#AARRGGBB,其中A代表alpha通道,R代表红色,G代表绿色,B代表蓝色。

如果在Java中设置颜色,则同样适用。它只会看起来像0xFF000000

<强>更新

在您的情况下,您必须添加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>

这里的颜色是半透明的黑色。

答案 1 :(得分:4)

使用以下代码作为progress.xml:

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

    <item android:id="@android:id/background">
        <shape>
            <corners android:radius="5dip" />
            <gradient
                    android:startColor="#ff9d9e9d"
                    android:centerColor="#ff5a5d5a"
                    android:centerY="0.75"
                    android:endColor="#ff747674"
                    android:angle="270"
            />
        </shape>
    </item>

    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <solid android:color="#00000000" />
            </shape>
        </clip>
    </item>

    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <solid android:color="#00000000" />
            </shape>
        </clip>
    </item>

</layer-list>

其中:

  • “progress”是拇指前的当前进度,“secondaryProgress”是拇指后的进度。
  • color =“#00000000”是一个完美的透明度
  • 注意:上面的文件来自默认的android res,适用于2.3.7,它可以在android源上找到:frameworks / base / core / res / res / drawable / progress_horizo​​ntal.xml。对于较新的版本,您必须找到与您的Android版本对应的搜索栏的默认可绘制文件。
之后

在包含xml:

的布局中使用它
<SeekBar
    android:id="@+id/myseekbar"
    ...
    android:progressDrawable="@drawable/progress"
    />

您还可以使用自定义图标seek_thumb.png自定义拇指:

android:thumb="@drawable/seek_thumb"

答案 2 :(得分:1)

使用此功能,我已将此信息写入我的应用

<?xml version="1.0" encoding="utf-8"?>
<!--  res/drawable/rounded_edittext.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" android:padding="10dp">
    <solid android:color="#882C383E"/>
    <corners
        android:bottomRightRadius="5dp"
        android:bottomLeftRadius="5dp"
        android:topLeftRadius="5dp"
        android:topRightRadius="5dp"/>
</shape>