Android中的嵌套形状

Posted

技术标签:

【中文标题】Android中的嵌套形状【英文标题】:Nested shapes in Android 【发布时间】:2010-12-10 21:57:05 【问题描述】:

我正在尝试绘制一个具有三个矩形形状的形状:

    纯色 渐变 白线

我该怎么做?

当我尝试这个时,它不起作用。布局具有父颜色。

<shape 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle"
    android:
    >
    <shape 
        android:shape="rectangle" 
        android:
        >
        <solid 
            android:color="#ff297baf" 
            />
    </shape>
    <shape 
        android:shape="rectangle"
        android:
        >
         <gradient
  android:type="linear"
  android:startColor="#ff297baf"
  android:endColor="#ff16c0e3"
  android:angle="270"/> 
    </shape>
    <shape
        android:shape="rectangle"
        android:
        >
        <solid 
            android:color="#FFFFFFFF"
            />
    </shape>
</shape>

我正在尝试制作 3 种颜色的渐变。从纯色#ff297baf 开始,在 60% 处开始从#ff297baf#ff16c0e3 的渐变,并在末尾添加一条while 线。

【问题讨论】:

您需要在这里提供更多信息。到目前为止,您是否有示例代码?为什么需要纯色和渐变?它是透明的渐变叠加吗?白线,是轮廓吗?它应该进入形状内部吗? 请将您的评论添加到问题中并稍微格式化一下。 它不是透明的覆盖层。白线是轮廓。通常我会在 html 中执行此操作:“border-bottom:solid 2px white”。它不必在里面做,但我无法在视图上看到任何其他形状。编译器抱怨 应该是 root。 【参考方案1】:

如果您打算使用多个形状,您应该尝试使用 LayerListDrawable。像这样的东西对我有用,但仅适用于您的示例高度 60px。您可能需要对其进行修改以完全适合您的需求,但这应该会给您一个良好的开端:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle">
        <gradient
            android:angle="270"
            android:endColor="#ff16c0e3"
            android:startColor="#ff297baf"
            android:type="linear" />
    </shape>
</item>
<item android:top="57px">
    <shape android:shape="rectangle">
        <solid android:color="#FFFFFFFF" />
        <size android: />
    </shape>
</item>

【讨论】:

以上是关于Android中的嵌套形状的主要内容,如果未能解决你的问题,请参考以下文章

如何使用xml中的可绘制形状绘制半椭圆形(Android)

选择器中的 Android 按钮形状不起作用

从android中的视图中剪切一个形状

如何在形状xml中的笔划两侧制作圆角

如何从 tflite 模型输出形状 [1, 28, 28,1] 的数组作为 android 中的图像

Android中的样式底线