본문 바로가기
DEVELOPMENT

[Android Studio] Chapter 7 연습문제

by 200% 2021. 7. 1.

[연습문제]

 

4

XML

더보기
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
    android:id="@+id/baseLayout"
    tools:context=".MainActivity">

    <ImageView
        android:id="@+id/iv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="30dp"
        android:layout_gravity="center"
        android:src="@drawable/dog"/>

</LinearLayout>

Java

더보기
package com.cookandroid.a7_4;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.ImageView;
import android.widget.LinearLayout;

public class MainActivity extends AppCompatActivity {
    LinearLayout baseLayout;
    ImageView iv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setTitle("연습문제 7-4");
        baseLayout = (LinearLayout) findViewById(R.id.baseLayout);
        iv = (ImageView) findViewById(R.id.iv);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
//        menu1.xml 이용시
//        MenuInflater mInflater = getMenuInflater();
//        mInflater.inflate(R.menu.menu1, menu);

//        Java로 메뉴 구현
        menu.add(0,1,0, "강아지");
        menu.add(0,2,0,"고양이");
        menu.add(0,3,0,"토끼");


        return true;
    }

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()){
            case 1:
                iv.setImageResource(R.drawable.dog);
                return true;
            case 2:
                iv.setImageResource(R.drawable.cat);
                return true;
            case 3:
                iv.setImageResource(R.drawable.rabbit);
                return true;
        }
        return false;
    }
}

 

5

activitiy_main.xml

더보기
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:gravity="center"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="토스트 보이기"/>


</LinearLayout>

toast1.xml

더보기
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center">
    <ImageView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:src="@drawable/cat"/>
</LinearLayout>

 

Java

더보기
package com.cookandroid.a7_5;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.Display;
import android.view.Gravity;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    Button btn;
    View toastView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setTitle("연습문제 7-5");

        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast toast = new Toast(MainActivity.this);
                toastView = (View) View.inflate(MainActivity.this, R.layout.toast1, null);
                toast.setView(toastView);

                Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
                int xOffset = (int) (Math.random()*display.getWidth());
                int yOffset = (int) (Math.random()*display.getHeight());

                toast.setGravity(Gravity.TOP|Gravity.LEFT, xOffset, yOffset);
                toast.show();
            }
        });
    }
}

 

6

 

activitiy_main.xml

더보기

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    tools:context=".MainActivity"
    android:orientation="vertical">

    <RadioGroup
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/rg">
        <RadioButton
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="강아지"
            android:id="@+id/rbD">
        </RadioButton>
        <RadioButton
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="고양이"
            android:id="@+id/rbC">
        </RadioButton>
        <RadioButton
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="토끼"
            android:id="@+id/rbR">
        </RadioButton>
        <RadioButton
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="말"
            android:id="@+id/rbH">
        </RadioButton>
    </RadioGroup>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="그림보기"
        android:id="@+id/btn"/>

</LinearLayout>​

dialog1.xml

더보기
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/dlgImg"
        android:layout_gravity="center"/>
</LinearLayout>

 

Java

더보기
package com.cookandroid.a7_6;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Display;
import android.view.Gravity;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    Button btn;
    RadioGroup rg;
    RadioButton rbD, rbC, rbR, rbH;
    View dialogView;
    ImageView img;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setTitle("연습문제 7-6");

        btn = (Button) findViewById(R.id.btn);

        rg = (RadioGroup) findViewById(R.id.rg);
        rbD = (RadioButton) findViewById(R.id.rbD);
        rbC = (RadioButton) findViewById(R.id.rbC);
        rbR = (RadioButton) findViewById(R.id.rbR);
        rbH = (RadioButton) findViewById(R.id.rbH);



        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dialogView = (View) View.inflate(MainActivity.this, R.layout.dialog1, null);
                AlertDialog.Builder dlg = new AlertDialog.Builder(MainActivity.this);

                img = (ImageView) dialogView.findViewById(R.id.dlgImg); // findViewById 앞에 dialogView 꼬오옥 쓰기...
                dlg.setView(dialogView);


                switch(rg.getCheckedRadioButtonId()){
                    case R.id.rbD:
                        dlg.setTitle("강아지");
                        img.setImageResource(R.drawable.dog);
                        break;
                    case R.id.rbC:
                        dlg.setTitle("고양이");
                        img.setImageResource(R.drawable.cat);
                        break;
                    case R.id.rbR:
                        dlg.setTitle("토끼");
                        img.setImageResource(R.drawable.rabbit);
                        break;
                    case R.id.rbH:
                        dlg.setTitle("말");
                        img.setImageResource(R.drawable.horse);
                        break;
                 }
                dlg.setNegativeButton("닫기", null);

                dlg.show();
            }
        });
    }
}​