마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

레이아웃 비율때문에 고생입니다 좋은 방법점

+1 추천

안녕하세요 안드로이드펍 가족님들.

현재 갤럭시s4~s2 대응하기위해서 가중치를 이용하고있습니다.

어느해상도에 가도 저런식으로 출력될수 있도록 하기위해서

아래와같이 코딩하였습니다. 답은 잘됩니다.

하지만 먼가 너무 소스가 더러워지고 관리하기 힘든데요.

더 좋은방법 아시는분 있으신가요.. 현업에서는 어떻게 쓰는지 궁금 합니다.

좋은하루 되세요.

 

<LinearLayout

            android:layout_width="0dp"

            android:layout_height="match_parent"

            android:layout_weight="0.19"

            android:orientation="vertical"

            android:weightSum="1" >

            <LinearLayout

                android:layout_width="match_parent"

                android:layout_height="0dp" 

                android:layout_weight="0.17">

            </LinearLayout>

 

            <LinearLayout

                android:layout_width="match_parent"

                android:layout_height="0dp"

                android:layout_weight="0.66"

                android:weightSum="1">

 

                <LinearLayout

                    android:layout_width="0dp"

                    android:layout_height="match_parent"

                    android:layout_weight="0.17">

                </LinearLayout>

 

                <LinearLayout

                    android:layout_width="0dp"

                    android:layout_height="match_parent"

                    android:layout_weight="0.58">

 

                    <Button

                        android:id="@+id/button1"

                        android:layout_width="wrap_content"

                        android:layout_height="wrap_content"

                        android:background="@drawable/bt_menu" />

 

                </LinearLayout>

 

                <LinearLayout

                    android:layout_width="0dp"

                    android:layout_height="match_parent"

                    android:layout_weight="0.25">

                </LinearLayout>

 

            </LinearLayout>

 

            <LinearLayout

                android:layout_width="match_parent"

                android:layout_height="0dp"

                android:layout_weight="0.17">

            </LinearLayout>

 

        </LinearLayout>

흠바바 1 (4,000 포인트) 님이 2013년 10월 23일 질문

7개의 답변

0 추천
 
채택된 답변
아래처럼 조언드립니다.

1. 마진을 목적으로 LinearLayout을 사용하는 것보다는 다른 뷰(ImageView) 같은것을 사용하세요.

     ( LinearLayout 이 계속 나오니 가독성이 너무 않좋은것 같습니다. )

2. 마진이 비율이라서 weight를 쓴거라면 어쩔수 없지만 아니라면 layout_margine을 사용하세요

감사합니다.
코비나 (1,580 포인트) 님이 2013년 10월 24일 답변
흠바바 1님이 2013년 10월 24일 채택됨
0 추천
저도 가중치랑 릴레티브레이아웃으로 다 꾸밉니다... 물론 가중치를 소수점으로 쓰는 방식은 안합니다..
건방진프로그래머 (26,630 포인트) 님이 2013년 10월 23일 답변
0 추천

weight로 쓰고있습니다 저도 소수점은 사용안합니다

weight = 1 weight = 2 weight = 1 이런식이라던지

그리고 android:layout_width="match_parent" 에

match_parent 쓰시지말고 필퍼어런츠로 쓰세요 버전때문에 안되는데도 있으니까요

 

kiraim (3,040 포인트) 님이 2013년 10월 23일 답변
0 추천
Weight는 상대 값 입니다.

따라서 현재 주어진 값에 100을 곱해서 소수점 이하 없이 기술하세요
컴천재 (2,580 포인트) 님이 2013년 10월 24일 답변
0 추천
가중치 사용해서 만들기도 하시만

해상도 별로 레이아웃을 만들어서 사용하는 방법도 씁니다.

좀 다른 방법이긴 한데 레이아웃을 웹으로 만들어서 웹뷰에 올려서사용하는 경우도 있습니다.
whitesnow (8,920 포인트) 님이 2013년 10월 24일 답변
0 추천
저도 해상도별 레이아웃을 만들거나 해상도별 values를 만들어서 dp 참조하는 방식으로 합니다.
기초개발자 (24,060 포인트) 님이 2013년 10월 24일 답변
0 추천
One layout으로 모두 해결하기엔 한계점이 있더군요.

안드로이드는 아직까지는 해상도별 layout 이나 해상도별 dimens 값을 줘서 처리하는게 나은 것 같더라구요.
새파도 (610 포인트) 님이 2014년 3월 10일 답변
...