android - 向布局添加颜色背景和边框半径

标签 android android-layout

我想创建一个带有圆角和填充色背景的布局。

这是我的布局:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="210dp"
    android:orientation="vertical"
    android:layout_marginBottom="10dp"        
    android:background="@drawable/offerItemLayout">
    <LinearLayout
        android:id="@+id/offerImageHolder"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
            .
            .
            .
    </LinearLayout>
</LinearLayout>

我有以下可正确创建边框的可绘制 xml (offerItemLayout):

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape xmlns:android="http://schemas.android.com/apk/res/android"
               android:shape="rectangle">
            <corners
                android:radius="5dp"/>
            <stroke
                android:width="1dp"
                android:color="@color/bggrey" />            
        </shape>
    </item>
    // The lines below causes an inflation failure.
    <item>
        <fill
            android:color="@color/white"/>
    </item>
</layer-list>

但是插入带有填充的项目会导致布局膨胀失败。

此外,如果我为我的内部 LinearLayout (offerImageHolder) 分配一个颜色背景,它会用我的圆角覆盖第一个背景。

对正确执行此操作有任何想法吗? :/

最佳答案

您不需要单独的填充项。事实上,它是无效的。您只需将 solid block 添加到 shape。随后的 stroke 绘制在 solid 之上:

<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle">

    <corners android:radius="5dp" />
    <solid android:color="@android:color/white" />
    <stroke
        android:width="1dip"
        android:color="@color/bggrey" />
</shape>

如果你只有一个 shape,你也不需要 layer-list

关于android - 向布局添加颜色背景和边框半径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15529372/

相关文章:

android - "Compatible side by side NDK version was not found. Default is 20.0.5594570."是什么意思?

android - 在 onCreate() 中生成 main.xml

Android,仅更改按钮的点击颜色

android - 如何让图像在小部件布局中调整大小以为其容器中的其他 View 腾出空间?

具有 DepthPageTransformer z-index 问题的 Android viewpager

android - 如何在透明模式下在屏幕中央显示3 2 1文字

android - 在旋转动画集中,pivotX/Y 如何工作

android - 具有相机权限的抽屉导航

android - 使用 Android 应用程序向 Raspberry PI 发送命令

java - 如何修复 'android.os.NetworkOnMainThreadException' ?