728x90
반응형
|
한빛아카데미 IT COOKBOOK 276 Android Studio를 활용한 안드로이드 프로그래밍 5판 p.287
배경색 변경 앱 만들기
activity_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:id="@+id/baseLayout"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="오른쪽 위 메뉴 버튼을 누르세요" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button1"
android:text="이건 버튼" />
</LinearLayout>
activity_main의 코딩은 이전보단 매우 간단합니다. 나타낼 속성들이 별로 없기 때문입니다.
menu1.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/itemRed"
android:title="배경색(빨강)" >
</item>
<item
android:id="@+id/itemGreen"
android:title="배경색(초록)" >
</item>
<item
android:id="@+id/itemBlue"
android:title="배경색(파랑)" >
</item>
<item android:title="버튼 변경 >> ">
<menu>
<item
android:id="@+id/subRotate"
android:title="버튼 45도 회전" />
<item
android:id="@+id/subSize"
android:title="버튼 2배 확대" />
</menu>
</item>
</menu>
버튼과 관련된 속성들은 메뉴 안에 다시 아이템 속성으로 선언해주었습니다.
그렇게 되면 아래와 같이 버튼 변경이라는 버튼이 만들어지고 다시 클릭하게 되면 안에 있는 회전과 확대 버튼이 보입니다.
MainActivity.java
package com.cookandroid.project7_1;
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.LinearLayout;
public class MainActivity extends AppCompatActivity {
LinearLayout baseLayout;
Button button1;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater mInflater = getMenuInflater();
mInflater.inflate(R.menu.menu1, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.itemRed:
baseLayout.setBackgroundColor(Color.RED);
return true;
case R.id.itemGreen:
baseLayout.setBackgroundColor(Color.GREEN);
return true;
case R.id.itemBlue:
baseLayout.setBackgroundColor(Color.BLUE);
return true;
case R.id.subRotate:
button1.setRotation(45);
return true;
case R.id.subSize:
button1.setScaleX(2);
return true;
}
return false;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("배경색 바꾸기");
baseLayout=(LinearLayout)findViewById(R.id.baseLayout);
button1=(Button)findViewById(R.id.button1);
}
}
onCreateOptionsMenu와 onOptionsItemSelected 메소드를 맨 위의 Code 메뉴에서 오버라이드했고,
button1의 동작과 Layout의 색상을 변경하기 위해 onCreate 메소드에서 선언해주었습니다.
Android Studio AVD 실행화면
728x90
반응형
'Dev > 안드로이드' 카테고리의 다른 글
안드로이드 프로그래밍 8장 실습 8-1 (0) | 2020.06.22 |
---|---|
안드로이드 프로그래밍 7장 직접 풀어보기 7-1 (2) | 2020.05.30 |
안드로이드 프로그래밍 5장 직접 풀어보기 5-5 (2) | 2020.05.28 |
안드로이드 프로그래밍 6장 직접 풀어보기 6-1 (0) | 2020.05.26 |
안드로이드 프로그래밍 6장 실습 6-1 (0) | 2020.05.24 |