Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

안녕하세요! ScrollView 사용에 질문이 있어서 문의 드립니다. #61

Open
cleancodeDev opened this issue Jul 30, 2018 · 1 comment

Comments

@cleancodeDev
Copy link

먼저 만들어 주신 ScalableLayout 을 처음 접하게 된 초급 개발자 입니다.
이것저것 구글링도 하고 작성해 주신 Readme도 읽어서 이제야 조금 이해하고 써보려고 합니다.

지금 작업하다가 멈추게 된 곳은 ScrollView를 적용 해야 하는 상황이여서 멈췄는데요

먼저 XML 파일 부터

<ImageView
    android:id="@+id/bg_image"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scaleType="fitXY" />

<com.ssomai.android.scalablelayout.ScalableLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/main_textview"
    android:background="@android:color/transparent"
    app:scale_base_height="740"
    app:scale_base_width="360">

    <include
        layout="@layout/activity_header"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:scale_height="186"
        app:scale_left="14"
        app:scale_top="76"
        app:scale_width="332"
        app:srcCompat="@drawable/program_thumb_2" />

    <com.ssomai.android.scalablelayout.ScalableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/main_textview"
        android:background="@android:color/transparent"
        app:scale_base_height="408"
        app:scale_base_width="360"
        app:scale_height="408"
        app:scale_top="322"
        app:scale_width="360">

        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#FFFFFF"
            app:scale_height="408"
            app:scale_width="360">

            <com.ssomai.android.scalablelayout.ScalableLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_above="@+id/main_textview"
                android:background="@android:color/transparent"
                app:scale_base_height="408"
                app:scale_base_width="360">

                <ImageButton
                    android:layout_width="332dp"
                    android:layout_height="90dp"
                    android:layout_marginBottom="12dp"
                    android:layout_marginLeft="10dp"
                    app:scale_height="90"
                    app:scale_left="12"
                    app:scale_top="28"
                    app:scale_width="332"
                    app:srcCompat="@drawable/category_a_wide" />

                <ImageButton
                    android:layout_width="332dp"
                    android:layout_height="90dp"
                    app:scale_height="90"
                    app:scale_left="12"
                    app:scale_top="130"
                    app:scale_width="332"
                    app:srcCompat="@drawable/category_b" />

                <ImageButton
                    android:layout_width="332dp"
                    android:layout_height="90dp"
                    app:scale_height="90"
                    app:scale_left="12"
                    app:scale_top="232"
                    app:scale_width="332"
                    app:srcCompat="@drawable/category_c" />

                <ImageButton
                    android:layout_width="332dp"
                    android:layout_height="90dp"
                    app:scale_height="90"
                    app:scale_left="12"
                    app:scale_top="334"
                    app:scale_width="332"
                    app:srcCompat="@drawable/category_d" />
            </com.ssomai.android.scalablelayout.ScalableLayout>
        </ScrollView>
    </com.ssomai.android.scalablelayout.ScalableLayout>
</com.ssomai.android.scalablelayout.ScalableLayout>

이렇게 사용 하고 있습니다.

category가 노출 되는 부분을 ScrollView를 이용해서 하려고 합니다.
그런데 우선 ScrollView는 LinearLayout을 감싸야 하며, LinearLayout의 orientation은 vertical을 가지고 있어야 하는데 ScalableLayout의 경우 이것을 어떻게 처리 해야 할지 몰라 문의 글을 남깁니다.

ScrollView안에 LinearLayout으로 하면 정상적으로 스크롤은 되지만, 해상도에 따른 리사이징이 되지 않아서.. 고통을 받고 있습니다 ㅠㅠ

혹시나 이글을 확인하시면 답변을 부탁 드립니다.

그리고 글을 남기게 되어서 추가로 문의 드리는 것이 있는데,
제가 지금 개발하고 있는 어플의 해상도는 720, 1280 입니다.
해당 해상도에 따라서 지금 제가 base_width, base_height를 정상적으로 적용하고 개발 하고 있는지도 잘 모르겠네요 ㅠㅠㅠㅠ

확인 하시면 답변 부탁 드리겠습니다
감사합니다!

@ssomai
Copy link
Owner

ssomai commented Aug 6, 2018

아 확인이 늦었네요 죄송합니다.

우선 앞의 질문인
"그런데 우선 ScrollView는 LinearLayout을 감싸야 하며, LinearLayout의 orientation은 vertical을 가지고 있어야 하는데 ScalableLayout의 경우 이것을 어떻게 처리 해야 할지 몰라 문의 글을 남깁니다."
이 부분이 정확하게 무슨 의미인지 이해가 되지 않아 좀더 구체적으로 문의주실 수 있을까요?
예를 들어 LinearLayout을 사용할때의 코드, 그리고 화면 스크린샷등을 첨부해주시면 이해가 될것 같습니다..

그리고 다음 질문인 해상도 부분인데,
ScalableLayout은 해상도(dp, px등)와는 independence하며, 사용되는 모든 값은 오로지 비율입니다.
즉 어떤 값을 사용하든 괜찮습니다. 720,1280을 사용하든 1500,2000을 사용하든 match_parent가 세팅된 방향(layout_width 또는 layout_height)에 맞춰서 비율을 유지하는 layout입니다.
비율이 상이한 폰들에 대한 대응 관련해서는 아래 링크의 내용을 확인하시면 괜찮을 것 같습니다.
https://github.com/ssomai/ScalableLayout/blob/master/README_ko.md#scalablelayout%EC%9C%BC%EB%A1%9C-layout%ED%95%98%EC%8B%A4-%EB%95%8C-%EC%B0%B8%EA%B3%A0%ED%95%98%EC%85%94%EC%95%BC-%ED%95%A0-%EC%A0%90

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants