在另一个形状内创建透明形状

时间:2014-12-02 18:16:28

标签: android android-xml android-resources

对不起,如果这是一个非常简单的问题;我还是很多Android的新手,我正在学习!

我目前在drawable文件夹中指定了一个形状,用于黑色矩形,不透明度为60%,占据了所有的屏幕 - 它会创建一个带有色调的窗口"放在图片上时的效果。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tinting_rectangle">
    <stroke android:width="2dp" android:color="#ff207d94" />
    <padding android:left="2dp"
        android:top="2dp"
        android:right="2dp"
        android:bottom="2dp" />
    <corners android:radius="5dp" />
    <solid android:color="#99000000" />
</shape>

然而,我的目标是创建一个圆形&#34;开放&#34;在这个着色中,就在矩形的中间。基本上,一个透明的椭圆形,让你可以看到那个地方的着色,看到下面的背景。

我曾经想过它会是这样的:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tinting_rectangle">
            <stroke android:width="2dp" android:color="#ff207d94" />
            <padding android:left="2dp"
                android:top="2dp"
                android:right="2dp"
                android:bottom="2dp" />
            <corners android:radius="5dp" />
            <solid android:color="#99000000" />
        </shape>
    </item>
    <item>
        <shape android:shape="oval">
            <solid android:color="#00FFFFFF" />
            <padding 
                android:left="@dimen/tint_padding" 
                android:top="@dimen/tint_padding" 
                android:right="@dimen/tint_padding" 
                android:bottom="@dimen/tint_padding" /> 
        </shape>
    </item>
</layer-list>

然而,这并没有达到我所寻求的目标;我仍然只有一个60%不透明黑色的巨大实心矩形。

是否有人建议在XML中实现这一目标(如果可能的话,希望将其作为nodpi解决方案)? A&#34;有色窗口&#34;在中间有一个洞的矩形,可以看到它背后的任何东西。

谢谢!

编辑:附加:正如您在第二个示例中看到的那样,我使用静态填充将其置于矩形中心。显然这不会奏效。如果有人有一个很好的建议如何确保椭圆始终居中在矩形中,那也将非常感激!

0 个答案:

没有答案