ssomai / ScalableLayout

Scalable Layout For Android
Apache License 2.0
270 stars 87 forks source link

안녕하세요 ScalableLayout을 사용하고있는데요. #30

Closed wonnew1207 closed 8 years ago

wonnew1207 commented 8 years ago

작업은 1280 x 720 (xhdpi) 기준으로 작업했습니다. 테스트 기기는 G2로 테스팅 해봤는데요 액션바 부분과 소프트키 부분이 이렇게 출력이 되어버리네요 소프트키가 없는 갤럭시S6 라던지 다른 디바이스에서는 다 정상적으로 출력이 되는데 G2는 소프트키때문인지 저렇게 짤리게 됩니다. 왜 그럴까요??

1 2

kdwkr commented 8 years ago

화면 잘림 현상은 소프트키 크기를 화면크기에서 빼서 계산하시면 될것 같습니다.

wonnew1207 commented 8 years ago

답변 감사합니다. 근데 한 가지 의문이 있는데요. 저는 현재 ssomai님께서 다른분 이슈에 댓글 다셨던 방법대로 최상위 레이아웃에 gravity를 센터로 줘서 ScalabelLayout을 크기에 딱 맞춰서 개발 하고있습니다. 근데 scalablelayout은 스케일들을 픽셀로 잡는거인데 소프트키 픽셀만큼을 해상도에서 뺀 다음에 계산 한다고 하면 소프트키가 없는 스마트폰에서는 당연히 위아래가 여백으로 남지 않나요?? 이를테면 이런식으루요.. 초보 개발자라서 제가 잘못 이해하고 있는건가요?? 22

ssomai commented 8 years ago

안녕하세요~, 제 추측으로는 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을 만드시는 것입니다.

그리고 기획이나 디자인 단계에 종사하시는 분께 안드로이드에서는 화면비율이 달라지는것을 항상 고려해달라고 부탁드려주세요. ㅎㅎ

wonnew1207 commented 8 years ago

네네 알고있습니다.. ssomai님께 질문 드리기전에 저와같은 질문을 한분은 있는지 없는지 Issue 들 보고 왔거든요... 그래서 root layout은 현재 LinearLayout을 잡고있습니다. 근데도 저렇네요 ..

ssomai commented 8 years ago

아하 혹시 flexible한 공간을 만드셨나용? 일단 스크린샷을 보니까 아래위로 버튼들이 있고 가운데에는 빈 공간이니까 이 공간을 flexible하게 만들면 될것 같아요.

그럼 root layout을 linearlayout으로 orientation을 vertical로 잡으시고 젤 위에 버튼만 감싸는 scalablelayout(대략 1280x200) 하나 만드시고 똑같이 젤 밑에 버튼만 감싸는 scalablelayout도 만드시고 그러면 어느 폰에서든 버튼이 아래 위에 깔끔하게 배치가 되실거에용

wonnew1207 commented 8 years ago

답변 감사합니다. 제가 이해를 잘 못하고 있는건지... 지금 제안해주시는 방법이 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>

이렇게 하라고 하시는 말씀인가요?? 11 111

ssomai commented 8 years ago

일부는 맞았어요. 위 scalablelayout이랑 아래 scalablelayout 사이의 scalablelayout을 없애구 그냥 빈 view 하나 끼워서 나머지 가득 채우면 됩니당. (weight 1주면 될거에요) 그럼 모든 폰에서 깔끔하게 나올거에요

wonnew1207 commented 8 years ago

감사합니다. 이것때문에 골치 아팠었는데 덕분에 해결했습니다^^