728x90
한빛아카데미 Android Studio를 활용한 안드로이드 프로그래밍 6판
p.295 직접 풀어보기 7-1
[실습 7-1]을 다음과 같이 수정하라.
- 레이아웃은 RelativeLayout을 사용하고 텍스트뷰, 에디트텍스트, 이미지뷰를 적절히 배치한다.
- 에디트텍스트에 각도를 입력하고 옵션 메뉴의 [그림 회전]을 선택하면 해당 각도만큼 이미지뷰가 회전한다.
- 한라산, 추자도, 범섬 옵션 메뉴는 라디오버튼과 같이 3개 중 하나만 체크되고, 메뉴를 선택하면 이미지뷰가 해당 이미지로 바뀐다(이미지나 이미지 이름이 달라도 된다.
코드
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/baseLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:src="@drawable/jeju02"/>
<EditText
android:id="@+id/edtAngle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/textView1"
android:text="0" >
</EditText>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/edtAngle"
android:layout_alignParentLeft="true"
android:text="각도 입력"
android:textSize="20dp"/>
</RelativeLayout>
menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/itemRotate"
android:title="그림 회전">
</item>
<group android:checkableBehavior="single" >
<item
android:id="@+id/item1"
android:checked="true"
android:title="한라산">
</item>
<item
android:id="@+id/item2"
android:title="추자도">
</item>
<item
android:id="@+id/item3"
android:title="범섬">
</item>
</group>
</menu>
MainActivity.java
package com.cookandroid.test;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.EditText;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
EditText edtAngle;
ImageView imageView1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("제주도 풍경");
edtAngle=(EditText)findViewById(R.id.edtAngle);
imageView1=(ImageView) findViewById(R.id.imageView1);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater mInflater = getMenuInflater();
mInflater.inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.itemRotate:
imageView1.setRotation(Float.parseFloat((edtAngle.getText().toString())));
return true;
case R.id.item1:
imageView1.setImageResource(R.drawable.jeju02);
return true;
case R.id.item2:
imageView1.setImageResource(R.drawable.jeju14);
return true;
case R.id.item3:
imageView1.setImageResource(R.drawable.jeju6);
return true;
}
return false;
}
}
결과
728x90
'개발 > 책' 카테고리의 다른 글
[안드로이드 프로그래밍] 7장 직접 풀어보기 7-3 (0) | 2021.10.30 |
---|---|
[명품 웹 프로그래밍] 5장 Open Challenge (0) | 2021.10.18 |
[명품 웹 프로그래밍] 4장 Open Challenge (0) | 2021.10.17 |