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

layout 배치방법좀 알려주세요

+1 추천

다음 그림같이 배치를 하고 싶은데..

생각처럼 되지 않네요.. dp로 다 해버리니 폰마다 크기가 다 달라져서

weight를 썻는데도 이상하게 되는데 ... 제가 실력이 많이 부족하여서 그런것을 알고 있습니다.

위와 같이 할수 있도록 도움을 부탁드립니다.

쿠쿠부다스 (6,470 포인트) 님이 2016년 3월 25일 질문

1개의 답변

+1 추천

크기까지 아예 저것으로 고정이 아니라면

리니어 레이아읏과 렐러티브 레이아웃을 적당히 활용하시면 충분히 만드실수 있을것 같습니다

안드로이드 특성 상 1px도 차이나지 않게 맞추기는 불가능에 가까워서요 ㅋㅋ

그리고, 컨테이너 레이아웃(최상위 레이아웃)을 리니어로 잡느냐, 렐러티브로 잡느냐에 따라서 아랫부분들 구현방법이 달라집니다.

 

만약 리니어로 하신다면

<LinearLayout .... orientation="vertical">    

    <LinearLayout gravity="center" ....>

        <View ....>

    </LinearLayout ....>

    <LinearLayout orientation="horizontal" gravity="center" ....>

        <....>

        <....>

    </LinearLayout>

</LinearLayout>

이렇게 하시면 두번째 줄까지 만들어 집니다. 나머지는 가능하실거에요~

 

모나미153 (17,540 포인트) 님이 2016년 3월 25일 답변
모나미153님이 2016년 3월 25일 수정
f레이아웃 중첩을 피하시려면, 뷰(버튼, 텍스트뷰, 이미지뷰 등등)에 패딩을 주면서 background를 설정하시면 됩니다.
두번째 이렇게 작성하였는데 이미지버튼과 텍스트뷰 화면이 똑같은 크기로 나오지가 않네요.. 그리고 이미지뷰 버튼옆에 회색이 붙는데 이거는 이미지 파일 크기 문제인가요??
  <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="25dp"
          android:gravity="center"
          android:orientation="horizontal">
        
        <ImageButton
            android:id="@+id/bt_button"
            android:layout_width="45dp"
            android:layout_height="30dp"
            android:layout_weight="1"
            android:layout_gravity="center"
            android:src="@drawable/bt"/>
        
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:padding="5dp"/>
            
        
        <TextView
            android:id="@+id/Bluetooth_state"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:layout_gravity="center"
            android:gravity="center"
            android:background="#1FE0E3"
            android:textColor="#ffffff"
            android:text="ABC"/>
        
    </LinearLayout>
구체적인 레이아웃을 봐야 알것 같습니다..
...