개발/책

[안드로이드 프로그래밍] 6장 직접 풀어보기 6-3

Hyunsun 2021. 10. 9. 02:35
728x90
한빛아카데미 Android Studio를 활용한 안드로이드 프로그래밍 6판

 

p.264 직접 풀어보기 6-3

 

탭호스트를 이용하여 동물 선택 앱을 작성하라.

  • 탭위젯을 아래쪽에 배치하고 탭 4개가 나오게 한다.
  • 프레임레이아웃 안의 리니어레이아웃 3개를 제거하고 4개의 이미지뷰를 배치한다.

HINT 프레임레이아웃의 layout_weight 속성을 1로 한다.

 

코드

activity_main.xml

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tabHost"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1">

            <ImageView
                android:id="@+id/tabDog"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:src="@drawable/dog" />

            <ImageView
                android:id="@+id/tabCat"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:src="@drawable/cat" />

            <ImageView
                android:id="@+id/tabRabbit"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:src="@drawable/rabbit" />

            <ImageView
                android:id="@+id/tabHorse"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:src="@drawable/horse" />

            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="bottom"
                android:background="#ffff00"></TabWidget>

        </FrameLayout>
    </LinearLayout>
</TabHost>

 

MainActivity.java

package com.cookandroid.test;

import android.os.Bundle;
import android.widget.TabHost;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TabHost tabHost = findViewById(R.id.tabHost);
        tabHost.setup();

        TabHost.TabSpec tabDog = tabHost.newTabSpec("Dog").setIndicator("강아지");
        tabDog.setContent(R.id.tabDog);
        tabHost.addTab(tabDog);

        TabHost.TabSpec tabCat = tabHost.newTabSpec("Cat").setIndicator("고양이");
        tabCat.setContent(R.id.tabCat);
        tabHost.addTab(tabCat);

        TabHost.TabSpec tabRabbit = tabHost.newTabSpec("Rabbit").setIndicator("토끼");
        tabRabbit.setContent(R.id.tabRabbit);
        tabHost.addTab(tabRabbit);

        TabHost.TabSpec tabHorse = tabHost.newTabSpec("Horse").setIndicator("말");
        tabHorse.setContent(R.id.tabHorse);
        tabHost.addTab(tabHorse);

        tabHost.setCurrentTab(0);
    }
}

 

결과

728x90