학교 공부/안드로이드 프로그래밍_코드

안드로이드 프로그래밍_직접 풀어보기 7-2 코드

_빌런 2022. 5. 3. 14:32
<!-- XML Code -->


<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/baseLayout"
    android:orientation="vertical"
    tools:context=".MainActivity">


    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="배경색 변경"
        android:textSize="15sp"
        android:layout_gravity="center"
        android:layout_margin="20dp">
    </Button>

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="버튼 변경"
        android:textSize="15sp"
        android:layout_gravity="center">
    </Button>

</LinearLayout>
// JAVA Code


package com.example.example_7_2;

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

import android.graphics.Color;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;

public class MainActivity extends AppCompatActivity {

    LinearLayout baseLayout;
    Button btnBackground, btnButton;
    int sizeCheckNum = 0, rotateCheckNum = 0;

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

        baseLayout = (LinearLayout) findViewById(R.id.baseLayout);
        btnBackground = (Button) findViewById(R.id.button1);
        btnButton = (Button) findViewById(R.id.button2);

        registerForContextMenu(btnBackground);
        registerForContextMenu(btnButton);
    }

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        if (v == btnBackground) {
            menu.add(0, 1, 0, "빨강!");
            menu.add(0, 2, 0, "파랑!!");
            menu.add(0, 3, 0, "검정!!!");
            menu.add(0, 4, 0, "하양...");
        }
        else {
            SubMenu subMenu = menu.addSubMenu("버튼 변경");
            subMenu.add(0, 5, 0, "버튼을 돌리거라");
            subMenu.add(0, 6, 0, "버튼을 바꾸거라");
        }
    }

    @Override
    public boolean onContextItemSelected(@NonNull MenuItem item) {
        // return super.onOptionsItemSelected(item);
        switch (item.getItemId()) {
            case 1:
                baseLayout.setBackgroundColor(Color.RED);
                return true;
            case 2:
                baseLayout.setBackgroundColor(Color.BLUE);
                return true;
            case 3:
                baseLayout.setBackgroundColor(Color.BLACK);
                return true;
            case 4:
                baseLayout.setBackgroundColor(Color.WHITE);
                return true;
            case 5:
                if (rotateCheckNum == 0) {
                    btnBackground.setRotation(180);
                    btnButton.setRotation(180);
                    rotateCheckNum = 1;
                }
                else {
                    btnBackground.setRotation(0);
                    btnButton.setRotation(0);
                    rotateCheckNum = 0;
                }
                return true;

            case 6:
                if (sizeCheckNum == 0) {
                    btnBackground.setScaleX(2);
                    btnBackground.setScaleY(2);
                    btnButton.setScaleX(2);
                    btnButton.setScaleY(2);
                    sizeCheckNum = 1;
                }
                else {
                    btnBackground.setScaleX(1);
                    btnBackground.setScaleY(1);
                    btnButton.setScaleX(1);
                    btnButton.setScaleY(1);
                    sizeCheckNum = 0;
                }
                return true;
        }
        return false;
    }
}