web-dev-qa-db-ja.com

角が丸いFrameLayout

ルートビュー(linear:vertical)内にFrameLayoutがあり、ユーザー入力に応じてさまざまなフラグメントを保持するために使用しています。 FrameLayoutは背景よりも小さいため、「フローティング」のように見えます。

FrameLayoutの角を丸めるにはどうすればよいですか?

FrameLayout内にあるフラグメントは画像ではないため、トリミングできません。

10
Dan Lehto

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"/>
24
Masum

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>
4
Farid Z

上記の答えの単なる改善:この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"/>
0
Shivam Narula