LinearLayout에 모서리 반경을 적용하는 방법


답변:


278

드로어 블 폴더에 XML 파일을 만들 수 있습니다. 예를 들어,shape.xml

에서 shape.xml:

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

    <solid
        android:color="#888888" >
    </solid>

    <stroke
        android:width="2dp"
        android:color="#C4CDE0" >
    </stroke>

    <padding
        android:left="5dp"
        android:top="5dp"
        android:right="5dp"
        android:bottom="5dp"    >
    </padding>

    <corners
        android:radius="11dp"   >
    </corners>

</shape>

<corner>태그는 특정 질문입니다.

필요에 따라 변경하십시오.

그리고 당신의 whatever_layout_name.xml:

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_margin="5dp"
    android:background="@drawable/shape"    >
</LinearLayout>

이것이 제가 보통 앱에서하는 일입니다. 도움이 되었기를 바랍니다....


이 XML에서 배경 이미지를 설정하는 방법
vignesh

1
@vignesh : 어떤 드로어 블을 어디에 설정합니까? <shape>예 를 의미하는 경우 이미 여기 XML 레이아웃에 설정되어 있습니다.android:background="@drawable/shape"
Siddharth Lele 2013 년

3
이 선형 레이아웃에 이미 배경 이미지가 있고 코너 반경을 원하면 어떻게하나요? 있는 LinearLayout 배경 속성이 shape.xml로 설정되어 있기 때문에 코드에서 나는, 배경 이미지를 설정할 수 실 거예요
newton_guima

@MrAppleBR : 배경 이미지를 설정할 수 없습니다 . 맞습니다. 그러나 질문의 ​​맥락에서 OP에는 이것이 유효한 사용 사례가있었습니다. 언급 한 유스 케이스에서 이것은 당신이 가야 할 것이 아닙니다.
Siddharth Lele 2013 년

@SiddharthLele 내가 무엇을 위해 가야합니까? 약간의 출처 나 링크로 설명해 주시겠습니까? 감사!
newton_guima 2013-08-09


8

나열한 것

<LinearLayout 
    android:id="@+id/linearLayout"
    android:layout_width="300dp"
    android:gravity="center"
    android:layout_height="300dp"
    android:layout_centerInParent="true"
    android:background="@drawable/rounded_edge">
 </LinearLayout>

드로어 블 폴더 rounded_edge.xml

<shape 
xmlns:android="http://schemas.android.com/apk/res/android">
    <solid 
        android:color="@android:color/darker_gray">
    </solid>
    <stroke 
         android:width="0dp" 
         android:color="#424242">
    </stroke>
    <corners 
         android:topLeftRadius="100dip"
         android:topRightRadius="100dip"
         android:bottomLeftRadius="100dip"
         android:bottomRightRadius="100dip">
    </corners>
</shape>

2

프로그래밍 방식으로 반경이있는 배경을 LinearLayout 또는 임의의 뷰로 설정하려면 이것을 시도하십시오.

 private Drawable getDrawableWithRadius() {

    GradientDrawable gradientDrawable   =   new GradientDrawable();
    gradientDrawable.setCornerRadii(new float[]{20, 20, 20, 20, 20, 20, 20, 20});
    gradientDrawable.setColor(Color.RED);
    return gradientDrawable;
}

LinearLayout layout = new LinearLayout(this);
layout.setBackground(getDrawableWithRadius());
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.