프로그램/안드로이드

안드로이드에서, 두 줄 박스 만들기

(주)CKBcorp., 2014. 12. 11. 06:30
반응형



말 그대로다.

원래는 group box 를 만들려고 했는데, android 의 drawable 의 shape 혹은 layer-list 에서는 text view 를 얹을 수가 없다.
그러므로, group box 는 결국 layout 쪽에서 잡아줘야 되고, 
여기서는 두 선 테두리 만드는 것만 이야기한다.

원래 이런 거는, 선 스타일이 따로 있어서 border-style : double  뭐 이런 걸로 해결되어야 하는데, 
왜인지는 모르겠지만 안드로이드는 이중선 스타일은 없다. ( 점선은 있더라 )
자세한건 

http://developer.android.com/guide/topics/resources/drawable-resource.html

여길 참고하고.... 결론부터 말하면,


/res/drawable 아래에 resource 를 만든다. 예를들어


double_line.xml


<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<item

   android:top="20dp"

   >

      <shape 

        android:shape="rectangle">

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

<stroke android:width="1dp" android:color="#FF444444" />

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

        </shape>

</item>


<item

   android:top="25dp"

   android:bottom="5dp"

   android:left="5dp"

   android:right="5dp"

   >

      <shape 

        android:shape="rectangle">

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

<stroke android:width="1dp" android:color="#FF444444" />

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

        </shape>

</item>

</layer-list>


여기서 주의할 건, <shape> 스타일로는 안된다는 것. 결국 선을 두 번 긋는 무식한 짓을 하기 때문에, <layer-list> 와 <item> <shape> 을 조합해야 한다.


그리고 실제로 사용할 화면이 있다면, 예를들어


main_activity.xml


...   

               <LinearLayout

                        android:layout_width="match_parent"

                        android:layout_height="wrap_content"

                        android:background="@drawable/double_line"

>

...


이런식으로 쓰면 된다. 


안드로이드에서 Group Box 만드는건 좀 나중에. 

근데 어짜피 꼼수 쓰는 거라, 이것만 있어도 만들 사람은 다 만들 수 있을거다.



[ 자고로 개소리에는 몽둥이가 약이다. ]


 


반응형