코딩 일기장/Android(Kotlin)
[안드로이드] 직접 풀어보기 7-1(메뉴 이용해서 사진 회전, 변환)
minWachya
2021. 4. 9. 14:23
반응형
직접 풀어보기 7-1
[실습 7-1]을 다음과 같이 수정하라.
- 레이아웃은 RelativeLayout을 사용하고, 텍스트뷰, 에디트 텍스트, 이미지뷰를 적절히 배치한다.
- 에디트텍스트에 각도를 입력하고 옵션 메뉴의 [그림 회전]을 선택하면 해당 각도만큼 이미지뷰가 회전한다.
- 한라산, 추자도, 범섬 옵션 메뉴는 라디오 버튼과 같이 3개 중 하나만 체크하고, 선택하면 이미지뷰가 해당 이미지로 바뀌게 한다.
나는 강아지, 고양이로 바꿔서 풀었다. 그냥 내 파일에 있는 사진들 ㅎ

axtivity_main.xml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<RelativeLayout 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" | |
tools:context=".MainActivity" | |
android:orientation="vertical" | |
android:id="@+id/baseLayout" > | |
<TextView | |
android:id="@+id/textView" | |
android:layout_alignParentTop="true" | |
android:layout_alignParentLeft="true" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:text="각도 입력" | |
android:textSize="30dp"/> | |
<EditText | |
android:id="@+id/editText" | |
android:layout_toRightOf="@+id/textView" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:hint="각도 입력"/> | |
<ImageView | |
android:id="@+id/imgView" | |
android:layout_centerInParent="true" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:src="@drawable/dog" /> | |
</RelativeLayout> |
menu1.xal
ActivityMain.kt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.mytest | |
import android.graphics.Color | |
import android.os.Bundle | |
import android.view.Menu | |
import android.view.MenuItem | |
import android.widget.* | |
import androidx.appcompat.app.AppCompatActivity | |
import androidx.fragment.app.FragmentActivity | |
import org.w3c.dom.Text | |
class MainActivity : AppCompatActivity() { | |
lateinit var baseLayout : RelativeLayout | |
lateinit var textView : TextView | |
lateinit var editText : EditText | |
lateinit var imgView : ImageView | |
override fun onCreate(savedInstanceState: Bundle?) { | |
super.onCreate(savedInstanceState) | |
setContentView(R.layout.activity_main) | |
title = "직접 풀어보기 7-1" | |
baseLayout = findViewById<RelativeLayout>(R.id.baseLayout) | |
textView = findViewById<TextView>(R.id.textView) | |
editText = findViewById<EditText>(R.id.editText) | |
imgView = findViewById<ImageView>(R.id.imgView) | |
} | |
// 옵션 메뉴 등록 | |
override fun onCreateOptionsMenu(menu: Menu?): Boolean { | |
super.onCreateOptionsMenu(menu) | |
var mInflater = menuInflater | |
mInflater.inflate(R.menu.menu1, menu) | |
return true | |
} | |
// 메뉴 클릭 시 동작하는 메소드 | |
override fun onOptionsItemSelected(item: MenuItem): Boolean { | |
when (item.itemId) { | |
R.id.itemRotate -> { | |
var value = editText.text.toString().toFloat() | |
imgView.rotation = value | |
return true | |
} | |
R.id.dog -> { | |
item.setChecked(true) | |
imgView.setImageResource(R.drawable.dog) | |
return true | |
} | |
R.id.cat -> { | |
item.setChecked(true) | |
imgView.setImageResource(R.drawable.cat) | |
return true | |
} | |
} | |
return false | |
} | |
} |
반응형