레이아웃 만들다 밤새게 생겼습니다.
왜이렇게 간단한것도 못만들겠는것인지...
대충 이런형태 만들고 있습니다.
크게 윗부분부터 봤을때.. 처음 중간 끝 이라면... 저 처음 부분이 문제입니다.
각각의 흰 부분은 별도의 레이아웃입니다.
제가 하고 싶은건 왼쪽 레이아웃은 왼쪽으로.. 오른쪽 레이아웃은 오른쪽으로 가게 하고 싶은데요..
이걸 어떻게 해야 되는질 모르겠습니다.
대충 보면 다음과 같이 했습니다.
상위 레이아웃 하나 더 있고, 아래 코드부분은 처음 부분 레이아웃만 입니다.
<!-- 첫번째줄 레이아웃은 전체 가로방향 --> 가로 방향으로 두개의 레이아웃을 더 받기 위한 부모 레이아웃이구요..
<LinearLayout
android:id="@+id/lay1"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#0000ff"
>
<!-- com1의 레이아웃 --> 이게 왼쪽 레이아웃이고..
<LinearLayout
android:id="@+id/com1"
android:orientation="vertical"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:background="#f0f00f"
android:layout_gravity="left" 이건 상위레이아웃의 왼쪽에 com1 레이아웃을 위치시키기 위한것이고..
android:gravity="center" 이건 내부의 ImageView가 레이아웃의 한가운데 위치시키기 위한것입니다.
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/acec"
/>
</LinearLayout>
<!-- com2의 레이아웃 --> 이게 오른쪽 레이아웃입니다..
<LinearLayout
android:id="@+id/com1"
android:orientation="vertical"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:background="#0ff0f0"
android:layout_gravity="right" 마찬가지로 이건 com2레이아웃이 상위 레이아웃의 오른쪽에 위치시키기 위한것입니다.
android:gravity="center"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/acec"
/>
</LinearLayout>
</LinearLayout>
이 결과는....
이렇게 나옵니다..
첫번째의 두 레이아웃이 각각 왼쪽 오른쪽에 나타나지 않고 연결되어 나옵니다..
가운데의 ImageView는 정상적으로 레이아웃의 가운데 위치하구요..
두 레이아웃간의 margin을 두려고 하니 왠지 기기 해상도에 따라 나오는 위치가 다를것 같아서요..
어떻게 해야 하는건가요..
뭘 잘못 알고 있는건지......
weight쓰면 전체를 비율로 나눠 쓰는거 아닌가요..
전 가운데 빈 부분을 둘려고 하는거라서요..
weight쓰면 전체를 반반으로 나눠서 쓰게 되는....
부모 레이아웃은 아래 중간이랑 끝부분 다른 비율로 쓸꺼라서 있는거구용
...gravity가 뷰와 내용물의 간격이라 안된다라?? 무슨 의미인지 이해가 안되네요. 설명 부탁드려도 될까요?
그리고 위의 소스를 봤는데, android:layout_gravity="right"를 사용하셨더라구요. 자식 레이아웃을 부모 레이아웃의 오른쪽에 위치시킨다. 이런 의미로... 근데 부모 레이아웃의 성질과 상황에 따라서 먹히거나 말거나 할꺼에요. 저라면 부모를 Frame으로 주고 용댕이님 말씀대로 자식View의 gravity를 left, right해주겠네요. 또한 다른 여러분이 설명하신 다양한 방법대로 테스트해보시면 보다 만족스런 형태를 얻어 낼 수 있을 겁니다. 화이팅!
android:layout_width="wrap_content"
니까 그렇습니다. 이미지 크기만큼만 공간을 먹는 거죠.
weight를 사용하시거나 사이즈를 fix시키셔야 될 듯 하네요.
weight사용법은 좀만 검색하면 나오니 금방 구현하실 수 있습니다.