AndroidでXMLを使用してドローアブルを作成しようとしていました。要件は、上端にのみ 7 dp の高さのストロークを持つ角の丸い四角形 (4 つの角すべてが丸みを帯びたもの) が必要です。そのために次の XML を使用しています。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<stroke android:width="5dp" android:color="@color/theme_color" />
<solid android:color="@color/theme_color" />
<corners
android:radius="7dp"/>
<padding android:top="7dp"/>
</shape>
</item>
<item>
<shape
android:shape="rectangle">
<stroke android:width="1dp" android:color="@color/designer_cell_background" />
<solid android:color="@color/designer_cell_background" />
<corners
android:radius="7dp"
android:topRightRadius="0dp"
android:topLeftRadius="0dp"/>
<padding android:bottom="1dp"/>
</shape>
</item>
</layer-list>
bottomRight と bottomLeft の角が丸められていないことを除いて、これはほぼ問題なく機能しています。
質問 - 1 : 底の角を丸くするにはどうすればよいですか?
質問 - 2: これは、私が実際に望んでいることを達成するための正しい方法ですか? より良い方法はありますか?私がこれを尋ねているのは、ここで私が実際に2つの長方形を重ねて作成していることを理解しているからです.2番目の長方形は最初の長方形の上端からわずかに下がっているため、最初の長方形の色2 番目のものの上に行。次に、各長方形に角の半径を個別に追加します。私はそれが正しい解決策だとは思わない。しかし、角丸長方形の上部に幅 7 dp のストロークを追加しようとすると失敗しました。私が与えたストロークはすべてのエッジに現れていました。
編集
ここに私が欲しいものがあります:
そして、これは私が現在得ているものです: