Android 创建带有圆角顶角的可绘制 XML

Android Create Drawable XML with Image rounded top corners

我正在尝试创建一个 Android XML Drawable,我可以将它用作我的一个 LinearLayouts 的背景。我需要背景有一个图像,左上角和右上角以 10dp 半径圆角。我一直在尝试使用下面的代码,但似乎无法让它工作。这可能吗?非常感谢任何帮助!

1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle">            
        <corners android:topLeftRadius="10dp"
                android:topRightRadius="10dp">                
        </corners>
    </shape>
</item>
<item>
    <bitmap android:src="@drawable/bg_navbar_blur" />
</item>

尝试使用 px 代替 dp:

1
2
3
<corners android:topLeftRadius="10px"
         android:topRightRadius="10px">                
</corners>

编辑:

这是我用来在我的元素之一中圆边的完整 XML:

1
2
3
4
5
6
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
   <solid android:color="#99000000"></solid>
   <corners android:radius="8px"></corners>
   <stroke  android:width="0dp" android:color="#A4C2E0"></stroke>  
</shape>

编辑 2:

我会试试这个。将图像及其布局(非四舍五入)放入新的 XML 中,并将其放置在可绘制文件夹中。假设它被命名为 linearlayout_bg.xml... 在您的主布局中,创建一个新的 LinearLayout 并应用以下属性:

android:background="@drawable/linearlayout_bg"

然后使用您的 <corners 代码。也许这会起作用?


尝试在形状中添加实体元素...

我的样本:

1
2
3
4
5
6
7
8
9
10
11
12
13
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="#0f0" />
            <corners android:radius="30dp" />

        </shape>
    </item>

    <item>
        <bitmap android:src="@drawable/ic_launcher" />
    </item>
</layer-list>

刚刚试了一下,感觉效果不错