퀴즈 앱 만들기 - 4

Purang·2022년 5월 12일
0

Android Studio

목록 보기
4/28

문제를 보여주는 레이아웃을 만들기 위해 res -> layout에서 empty activity를 생성하겠습니다. 이름은 activity_quiz_question입니다.
여기서 퀴즈에 사용될 레이아웃을 만들어 보겠습니다. scrollview로 처음을 설정해주시고
여기서 문제를 먼저 보여주고 그 다음 이미지, 그리고 선택지, 버튼을 주는 식으로 화면을 설정하겠습니다.
그 다음 LinearLayout을 설정하고 안에 문제를 만들겠습니다.

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:gravity="center"
        android:padding="16dp"
        >
        <!--여기에 문제생성-->
</LinearLayout>

TextView를 통해 문제를 넣을 곳을 생성해주세요

<TextView
            android:id="@+id/tv_question"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:gravity="center"
            android:textColor="#363A43"
            android:textSize="22sp"
            android:text="이것은 총 얼마 인가요?">
        </TextView>

그 후 문제의 이미지를 보여주도록 생성하겠습니다.

 <ImageView
            android:id="@+id/iv_image"
            android:layout_width="wrap_content"
            android:layout_height="142dp"
            android:layout_marginTop="16dp"
            android:src="@drawable/thousand" />

다음으로 progressBar 즉, 현재 몇 문제까지 했는 지 알려줄 progressbar 생성할 LinearLayout을 생성하고 그 안에 progressbar와 그걸 표현해줄 textview를 생성합니다.

<LinearLayout
            android:id="@+id/ll_progress_details"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:gravity="center_vertical"
            android:orientation="horizontal"
            >
            <ProgressBar
                android:id="@+id/progressBar"
                style="?android:attr/progressBarStyleHorizontal"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:max="5"
                android:minHeight="50dp"
                android:progress="0"
                android:indeterminate="false"
                />
            <TextView
                android:id="@+id/tv_progress"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:padding="15dp"
                android:textColorHint="#7A8089"
                android:textSize="14sp"
                tools:text="0/5"
                />
            <!--style은 수직 진행률 표시-->
        </LinearLayout>

그 후 밑에 선택지를 만들 textview를 통해 생성해주고 button을 완성하면 아래와 같아집니다.(이 때 이미지와 option의 텍스트, 문제 등은 나중에 코드를 통해 바꿀 수 있으니 크게 신경쓰지 않아도 됩니다.)

전체코드

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="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:fillViewport="true"
    tools:context=".QuizQuestionActivity">
    <!--fillview는 전체 뷰포트를 채우도록 true로 설정하여 작은 화면에서도 작동하도록함-->

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:gravity="center"
        android:padding="16dp"
        >

        <TextView
            android:id="@+id/tv_question"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:gravity="center"
            android:textColor="#363A43"
            android:textSize="22sp"
            android:text="이것은 총 얼마 인가요?">
        </TextView>

        <ImageView
            android:id="@+id/iv_image"
            android:layout_width="wrap_content"
            android:layout_height="142dp"
            android:layout_marginTop="16dp"
            android:src="@drawable/thousand" />

        <LinearLayout
            android:id="@+id/ll_progress_details"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:gravity="center_vertical"
            android:orientation="horizontal"
            >
            <ProgressBar
                android:id="@+id/progressBar"
                style="?android:attr/progressBarStyleHorizontal"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:max="5"
                android:minHeight="50dp"
                android:progress="0"
                android:indeterminate="false"
                />
            <TextView
                android:id="@+id/tv_progress"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:padding="15dp"
                android:textColorHint="#7A8089"
                android:textSize="14sp"
                tools:text="0/5"
                />
            <!--style은 수직 진행률 표시-->
            <!--developer android com = progressbar에 코드있음을 보임(determinateprogress웹내검색)-->
        </LinearLayout>

        <TextView
            android:id="@+id/tv_option_one"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:background="@drawable/default_option_border_bg"
            android:gravity="center"
            android:padding="15dp"
            android:textColor="#7A8089"
            android:textSize="18sp"
            tools:text="Apple"/>
        <TextView
            android:id="@+id/tv_option_two"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:background="@drawable/default_option_border_bg"
            android:gravity="center"
            android:padding="15dp"
            android:textColor="#7A8089"
            android:textSize="18sp"
            tools:text="Apple"/>
        <TextView
            android:id="@+id/tv_option_three"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:background="@drawable/default_option_border_bg"
            android:gravity="center"
            android:padding="15dp"
            android:textColor="#7A8089"
            android:textSize="18sp"
            tools:text="Apple"/> <!--그냥 아무단어설정 어차피 코드를 통해 바뀜-->
        <TextView
            android:id="@+id/tv_option_four"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:background="@drawable/default_option_border_bg"
            android:gravity="center"
            android:padding="15dp"
            android:textColor="#7A8089"
            android:textSize="18sp"
            tools:text="Apple"/>

        <Button
            android:id="@+id/btn_submit"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/design_default_color_primary"
            android:padding="5dp"
            android:text="Submit"
            android:textColor="@color/white"
            android:textSize="18sp"
            android:textStyle="bold" />
        <!--1시간04 54까지 봄-->
    </LinearLayout>
</ScrollView>

다음 시간에는 이제 코드를 통해 실제 문제를 만들어 보도록 하겠습니다.

profile
몰입의 즐거움

0개의 댓글