Android, IOS/Android

[Android Sutdio를 활용한 안드로이드 프로그래밍] 직접풀어보기 6-3

Emil :) 2019. 10. 21. 22:21
728x90
반응형

<문제>

탭호스트를 이용해서 선택 앱을 작성하라.

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

 

<결과 화면>

고먐미 기여어

<XML 코드>

<?xml version="1.0" encoding="utf-8"?>
<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: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/cat"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:src="@drawable/cat">
            </ImageView>

            <ImageView
                android:id="@+id/dog"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:src="@drawable/dog">
            </ImageView>

            <ImageView
                android:id="@+id/horse"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:src="@drawable/horse">
            </ImageView>

            <ImageView
                android:id="@+id/rabbit"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:src="@drawable/rabbit">
            </ImageView>
        </FrameLayout>

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#f0f000">
        </TabWidget>
    </LinearLayout>
</TabHost>

위에 존재하던 탭위젯을 아래로 내리는건 그냥 순서만 바꿔주면된다.

<JAVA 코드>

package com.example.a4_test1;

import androidx.appcompat.app.AppCompatActivity;

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

public class MainActivity extends AppCompatActivity {

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

        setTitle("탭호스트 예제");

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

        TabHost.TabSpec tabSpecCat = tabHost.newTabSpec("CAT").setIndicator("고양이");
        tabSpecCat.setContent(R.id.cat);
        tabHost.addTab(tabSpecCat);

        TabHost.TabSpec tabSpecDog = tabHost.newTabSpec("DOG").setIndicator("강아지");
        tabSpecDog.setContent(R.id.dog);
        tabHost.addTab(tabSpecDog);

        TabHost.TabSpec tabSpecRabbit = tabHost.newTabSpec("RABBIT").setIndicator("토끼");
        tabSpecRabbit.setContent(R.id.rabbit);
        tabHost.addTab(tabSpecRabbit);

        TabHost.TabSpec tabSpecHorse = tabHost.newTabSpec("HORSE").setIndicator("말");
        tabSpecHorse.setContent(R.id.horse);
        tabHost.addTab(tabSpecHorse);

        tabHost.setCurrentTab(0);
    }
}

8열에서 extends TabActivity는 API 13이후로 잘 쓰이지 않는다고 한다.
책과는 조금 다른듯

<결과>

 

728x90
반응형