ルートビュー(linear:vertical)内にFrameLayoutがあり、ユーザー入力に応じてさまざまなフラグメントを保持するために使用しています。 FrameLayoutは背景よりも小さいため、「フローティング」のように見えます。
FrameLayoutの角を丸めるにはどうすればよいですか?
FrameLayout内にあるフラグメントは画像ではないため、トリミングできません。
Xmlファイルを作成します。例: your_rounded_shape.xml
、ドローアブルフォルダーに、次のコードを追加します。
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android">
<solid Android:color="#CCCCCC"/>
<stroke Android:width="2dp"
Android:color="#999999"/>
<padding Android:left="2dp"
Android:top="2dp"
Android:right="2dp"
Android:bottom="2dp"/>
<corners Android:bottomRightRadius="8dp"
Android:bottomLeftRadius="8dp"
Android:topLeftRadius="8dp"
Android:topRightRadius="8dp"/>
</shape>
次に、FrameLayout
の背景としてyour_rounded_shape.xml
を使用します。このようなもの:
<FrameLayout
Android:width="match_parent"
Android:height="wrap_content"
Android:background="your_rounded_shape"/>
FrameLayoutをCardViewレイアウトに置き換えます。
<Android.support.v7.widget.CardView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
app:cardCornerRadius="8dp">
</Android.support.v7.widget.CardView>
上記の答えの単なる改善:このxmlファイルの名前をrounded_frame_layout.xml
としましょう
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android">
<solid Android:color="#CCCCCC"/>
<stroke Android:width="2dp"
Android:color="#999999"/>
<padding Android:left="2dp"
Android:top="2dp"
Android:right="2dp"
Android:bottom="2dp"/>
<corners Android:radius="8dp"/>
</shape>
Then use your drawable as follows:
<FrameLayout
Android:width="match_parent"
Android:height="wrap_content"
Android:background="@drawable/rounded_frame_layout"/>