코딩 일기장/Android(Kotlin)

[안드로이드] 직접 풀어보기 7-1(메뉴 이용해서 사진 회전, 변환)

minWachya 2021. 4. 9. 14:23
반응형

직접 풀어보기 7-1

[실습 7-1]을 다음과 같이 수정하라.

  • 레이아웃은 RelativeLayout을 사용하고, 텍스트뷰, 에디트 텍스트, 이미지뷰를 적절히 배치한다.
  • 에디트텍스트에 각도를 입력하고 옵션 메뉴의 [그림 회전]을 선택하면 해당 각도만큼 이미지뷰가 회전한다.
  • 한라산, 추자도, 범섬 옵션 메뉴는 라디오 버튼과 같이 3개 중 하나만 체크하고, 선택하면 이미지뷰가 해당 이미지로 바뀌게 한다.

나는 강아지, 고양이로 바꿔서 풀었다. 그냥 내 파일에 있는 사진들 ㅎ

 

 

실행 결과

axtivity_main.xml

<?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

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/itemRotate"
android:title="그림 회전" />
<group
android:checkableBehavior="single">
<item
android:id="@+id/dog"
android:title="강아지"
android:checked="true" />
<item
android:id="@+id/cat"
android:title="고양이"/>
</group>
</menu>
view raw menu1.xml hosted with ❤ by GitHub

 

ActivityMain.kt

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
}
}
view raw MainActivity.kt hosted with ❤ by GitHub

 

반응형