Android 仅具有外部笔划的形状

Android 仅具有外部笔划的形状,android,android-layout,Android,Android Layout,它给出了一个半内半外的冲程。 我只需要外部半透明的笔划。能做到吗 我所拥有的是 我需要的是 谢谢将您的代码更新为: <?xml version="1.0" encoding="utf-8"?> <shape android:shape="oval" xmlns:android="http://schemas.android.com/apk/res/android" >

它给出了一个半内半外的冲程。 我只需要外部半透明的笔划。能做到吗

我所拥有的是

我需要的是


谢谢

将您的代码更新为:

<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="oval"
       xmlns:android="http://schemas.android.com/apk/res/android"
    >
    <solid android:color="#ffffff"/>

    <stroke android:width="30dp"
            android:color="#51000000"
        />
</shape>
您的第一个颜色缺少一个f。因此,它创建了一个半可见的模式

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid android:color="#ffffff" />

    <stroke
        android:width="30dp"
        android:color="#000000" /> <--- this line you have to change
</shape>

如果为笔划颜色添加alpha,则内半部不透明,外半部透明。这就是笔划颜色的工作方式。如果不希望内半部使用不带alpha的颜色并调整六角编码。

您可以将使用图层列表创建的形状与其项目一起检查

<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="oval"
    xmlns:android="http://schemas.android.com/apk/res/android"
    >
    <solid android:color="#fffffff"/>

    <stroke android:width="30dp"
        android:color="#51000000"
        />
</shape>

尝试为形状属性添加android:innerRadius=0dp-


这是Android studio XML预览错误。看起来像上面从Android studio XML预览中显示的图像。实际上没有内层和外层。

除了以下内容之外,我没有其他方法可以做到这一点:

<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="oval"
xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadius="0dp"
>
<solid android:color="#ffffff"/>

<stroke android:width="4dp"
    android:color="#51000000"
    />
</shape>

试试这个:改变尺寸和颜色来满足你的需要

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item >
        <shape android:shape="oval">
            <solid android:color="@android:color/transparent" />
            <stroke
                android:width="@dimen/stroke_width"
                android:color="#33000000" />
        </shape>
    </item>

    <item >
        <shape android:shape="oval" >
            <solid android:color="#fff" />
            <stroke
                android:width="@dimen/stroke_width"
                android:color="@android:color/transparent">
            </stroke>
        </shape>
    </item>
</layer-list>

更改输出颜色不是OP想要的!这条线你必须改变-不。我需要一个半透明的笔划。你能提供一个从哪里得到的参考吗?内半部分没有透明,外半部分是透明的-你能看到附加的图像吗?两个半部分都是透明的。另外,你能提供一个标记吗,plz?它只给出一个内部没有纯白色的环。你能添加你想要的图像吗?它给出内部笔划,而不是外部笔划。只需更改颜色,没有内部和外部笔划。将颜色更改为8000000,然后检查。没有任何更改。结果完全一样。什么api级别?我现在没有真正的设备。但是,模拟器显示的结果与预览完全相同。因此,很可能在真实设备上的结果也是一样的。这只是一个屏幕截图。请显示相应的标记。请检查这个答案:它真的适合我。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item >
        <shape android:shape="oval">
            <solid android:color="@android:color/transparent" />
            <stroke
                android:width="@dimen/stroke_width"
                android:color="#33000000" />
        </shape>
    </item>

    <item >
        <shape android:shape="oval" >
            <solid android:color="#fff" />
            <stroke
                android:width="@dimen/stroke_width"
                android:color="@android:color/transparent">
            </stroke>
        </shape>
    </item>
</layer-list>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="oval">
            <stroke android:width="@dimen/default_stroke_size_small" android:color="@color/colorDimBlack"/>
        </shape>
    </item>

    <item>
        <shape android:shape="oval">
            <stroke android:width="@dimen/default_stroke_size_small" android:color="@android:color/transparent"/>
            <solid android:color="@color/colorWhite"/>
        </shape>
    </item>
</layer-list>