Programing

하단을 제외하고 선형 레이아웃 주위에 테두리를 추가하는 방법은 무엇입니까?

crosscheck 2020. 11. 19. 07:52
반응형

하단을 제외하고 선형 레이아웃 주위에 테두리를 추가하는 방법은 무엇입니까?


하단을 제외하고 선형 레이아웃 주위에 테두리를 추가하는 방법은 무엇입니까? LinearLayout은 왼쪽, 위쪽 및 오른쪽에 테두리가 있어야하지만 아래쪽에는 있어야합니다.


드로어 블 폴더에 border.xml이라는 XML 파일을 만들고 그 안에 다음 코드를 넣습니다.

 <?xml version="1.0" encoding="utf-8"?>
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item> 
    <shape android:shape="rectangle">
      <solid android:color="#FF0000" /> 
    </shape>
  </item>   
    <item android:left="5dp" android:right="5dp"  android:top="5dp" >  
     <shape android:shape="rectangle"> 
      <solid android:color="#000000" />
    </shape>
   </item>    
 </layer-list> 

그런 다음 다음과 같이 선형 레이아웃에 배경을 추가합니다.

         android:background="@drawable/border"

편집하다 :

이 XML은 GingerBread 2.3.3을 실행하는 은하계에서 테스트되었으며 아래 이미지와 같이 완벽하게 실행되었습니다.

여기에 이미지 설명 입력

또한

JellyBean 4.1.2를 실행하는 galaxy s 3에서 테스트되었으며 아래 이미지와 같이 완벽하게 실행되었습니다.

여기에 이미지 설명 입력

마지막으로 모든 API에서 완벽하게 작동합니다.

편집 2 :

또한 다음 코드를 사용하여 하단을 제외하고 테두리를 유지하면서 배경을 투명하게 유지하기 위해 스트로크를 사용할 수도 있습니다.

<?xml version="1.0" encoding="utf-8"?>
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:left="0dp" android:right="0dp"  android:top="0dp"  
        android:bottom="-10dp"> 
    <shape android:shape="rectangle">
     <stroke android:width="10dp" android:color="#B22222" />
    </shape>
   </item>  
 </layer-list> 

이 도움을 바랍니다.


이 XML을 저장하고 선형 레이아웃의 배경으로 추가합니다 ....

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <stroke android:width="4dp" android:color="#FF00FF00" /> 
    <solid android:color="#ffffff" /> 
    <padding android:left="7dp" android:top="7dp" 
            android:right="7dp" android:bottom="0dp" /> 
    <corners android:radius="4dp" /> 
</shape>

도움이 되었기를 바랍니다! :)


케니 말이 맞아요. 몇 가지를 정리하고 싶습니다.

  1. 파일을 border.xml만들고 폴더에 넣습니다.res/drawable/
  2. 코드 추가

    <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
       <stroke android:width="4dp" android:color="#FF00FF00" /> 
       <solid android:color="#ffffff" /> 
       <padding android:left="7dp" android:top="7dp" 
            android:right="7dp" android:bottom="0dp" /> 
       <corners android:radius="4dp" /> 
    </shape>
    
  3. android:background="@drawable/border"당신이 국경을 원하는 곳 과 같이 배경을 설정 하십시오.

내 처음에는 작동하지 않았습니다 border.xml. 잘못된 폴더에 넣었 기 때문 입니다!


다음은 FrameLayout 위젯을 기반으로 원하는 위젯에 대해 원하는대로 테두리를 사용할 수있는 가볍고 통합하기 매우 쉬운 라이브러리에 대한 Github 링크 입니다.

여기에 얼마나 쉬운 지 알 수있는 간단한 샘플 코드가 있지만 링크에서 더 많은 정보를 찾을 수 있습니다.

<com.khandelwal.library.view.BorderFrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:leftBorderColor="#00F0F0"
            app:leftBorderWidth="10dp"
            app:topBorderColor="#F0F000"
            app:topBorderWidth="15dp"
            app:rightBorderColor="#F000F0"
            app:rightBorderWidth="20dp"
            app:bottomBorderColor="#000000"
            app:bottomBorderWidth="25dp" >
    </com.khandelwal.library.view.BorderFrameLayout>

따라서 하단에 테두리를 표시하지 않으려면이 사용자 정의 위젯에서 하단에 대한 두 줄을 삭제하면됩니다.

그리고 아니요, 저는이 도서관의 저자도 아니고 그의 친구도 아닙니다 ;-)

참고 URL : https://stackoverflow.com/questions/10457135/how-to-add-border-around-linear-layout-except-at-the-bottom

반응형