Closed wonnew1207 closed 8 years ago
화면 잘림 현상은 소프트키 크기를 화면크기에서 빼서 계산하시면 될것 같습니다.
답변 감사합니다. 근데 한 가지 의문이 있는데요. 저는 현재 ssomai님께서 다른분 이슈에 댓글 다셨던 방법대로 최상위 레이아웃에 gravity를 센터로 줘서 ScalabelLayout을 크기에 딱 맞춰서 개발 하고있습니다. 근데 scalablelayout은 스케일들을 픽셀로 잡는거인데 소프트키 픽셀만큼을 해상도에서 뺀 다음에 계산 한다고 하면 소프트키가 없는 스마트폰에서는 당연히 위아래가 여백으로 남지 않나요?? 이를테면 이런식으루요.. 초보 개발자라서 제가 잘못 이해하고 있는건가요??
안녕하세요~, 제 추측으로는 wonnew1207님께서 아마 ScalableLayout을 root layout으로 사용하신것 같아요~. 아래 내용을 보시고 다시 레이아웃 구성하시는 것을 추천드립니다. ㅎ
https://github.com/ssomai/ScalableLayout/blob/master/README_ko.md#scalablelayout으로-layout하실-때-참고하셔야-할-점 ScalableLayout을 Root Layout으로 지정하시는 것은 추천하지 않습니다. 그 이유는 폰마다 화면 비율이 다르기 때문입니다. ScalableLayout은 지정받은 비율을 그대로 유지합니다. 즉, 600 x 1000 로 지정하셨다면 그 비율을 그대로 유지합니다.
추천드리고 싶은 방법은 LinearLayout이나 FrameLayout, RelatvieLayout등을 최상위로 두시고 그 안에 각 부분들을 ScalableLayout을 만드시는 것입니다.
그리고 기획이나 디자인 단계에 종사하시는 분께 안드로이드에서는 화면비율이 달라지는것을 항상 고려해달라고 부탁드려주세요. ㅎㅎ
네네 알고있습니다.. ssomai님께 질문 드리기전에 저와같은 질문을 한분은 있는지 없는지 Issue 들 보고 왔거든요... 그래서 root layout은 현재 LinearLayout을 잡고있습니다. 근데도 저렇네요 ..
아하 혹시 flexible한 공간을 만드셨나용? 일단 스크린샷을 보니까 아래위로 버튼들이 있고 가운데에는 빈 공간이니까 이 공간을 flexible하게 만들면 될것 같아요.
그럼 root layout을 linearlayout으로 orientation을 vertical로 잡으시고 젤 위에 버튼만 감싸는 scalablelayout(대략 1280x200) 하나 만드시고 똑같이 젤 밑에 버튼만 감싸는 scalablelayout도 만드시고 그러면 어느 폰에서든 버튼이 아래 위에 깔끔하게 배치가 되실거에용
답변 감사합니다. 제가 이해를 잘 못하고 있는건지... 지금 제안해주시는 방법이 LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:sl="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.wnew.textviewtest.MainActivity">
<com.example.wnew.textviewtest.ScalableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
sl:scale_base_height="90"
sl:scale_base_width="720">
<TextView
android:id="@+id/Blue_actionbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/actionbar_bg"
android:gravity="center"
android:text="Setting Tutorial"
sl:scale_height="90"
sl:scale_left="0"
sl:scale_textsize="40"
sl:scale_top="0"
sl:scale_width="720" />
</com.example.wnew.textviewtest.ScalableLayout>
<com.example.wnew.textviewtest.ScalableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
sl:scale_base_height="925"
sl:scale_base_width="720"></com.example.wnew.textviewtest.ScalableLayout>
<com.example.wnew.textviewtest.ScalableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
sl:scale_base_height="120"
sl:scale_base_width="720">
<TextView
android:id="@+id/Blue_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/tuto_start_btn_ac"
android:gravity="center"
android:onClick="onClick"
android:text="START"
sl:scale_height="120"
sl:scale_left="0"
sl:scale_textsize="50"
sl:scale_top="0"
sl:scale_width="720" />
</com.example.wnew.textviewtest.ScalableLayout>
이렇게 하라고 하시는 말씀인가요??
일부는 맞았어요. 위 scalablelayout이랑 아래 scalablelayout 사이의 scalablelayout을 없애구 그냥 빈 view 하나 끼워서 나머지 가득 채우면 됩니당. (weight 1주면 될거에요) 그럼 모든 폰에서 깔끔하게 나올거에요
감사합니다. 이것때문에 골치 아팠었는데 덕분에 해결했습니다^^
작업은 1280 x 720 (xhdpi) 기준으로 작업했습니다. 테스트 기기는 G2로 테스팅 해봤는데요 액션바 부분과 소프트키 부분이 이렇게 출력이 되어버리네요 소프트키가 없는 갤럭시S6 라던지 다른 디바이스에서는 다 정상적으로 출력이 되는데 G2는 소프트키때문인지 저렇게 짤리게 됩니다. 왜 그럴까요??