학교 공부/안드로이드 프로그래밍_코드
안드로이드 프로그래밍_직접 풀어보기 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;
}
}