요약
1. 재생 버튼을 눌러서 브금이 재생되게 하였고, 입력 버튼을 눌러 정답을 맞추도록 하였음.
본문
PlayActivity에 정답을 입력하는 EditText와 재생 및 정답 입력 버튼을 추가해서,
재생 버튼을 누르면 브금이 재생되고, EditText에 정답을 쓸 수 있으며, 입력 버튼을 누르면 브금이 멈추고 score 변수가 1 오르게 하였다.(아직 정답 체크는 구현 안 했음)
activity_play.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:background="@drawable/mainbackground"
android:orientation="vertical"
tools:context=".PlayActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="125dp"
android:orientation="horizontal"></LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="150dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
app:srcCompat="@drawable/exampleanswer" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:orientation="horizontal"></LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="100dp"
android:layout_height="match_parent"
android:orientation="horizontal"></LinearLayout>
<EditText
android:id="@+id/answerText"
android:layout_width="212dp"
android:layout_height="match_parent"
android:inputType="text"
android:maxLength="6"
android:privateImeOptions="defaultInputmode=korean"
android:text="페리온" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"></LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="150dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal"></LinearLayout>
<ImageButton
android:id="@+id/bgmplayButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:adjustViewBounds="true"
android:contentDescription="Play BGM"
android:padding="0dp"
android:scaleType="fitCenter"
android:src="@drawable/bgmplaybutton" />
<LinearLayout
android:layout_width="250dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal"></LinearLayout>
<ImageButton
android:id="@+id/answerButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:adjustViewBounds="true"
android:contentDescription="Input Answer"
android:padding="0dp"
android:scaleType="fitCenter"
android:src="@drawable/answerbutton" />
<LinearLayout
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal"></LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="245dp"
android:orientation="horizontal"></LinearLayout>
</LinearLayout>
PlayActivity.kt
package com.bodan.maplebgm
import android.media.MediaPlayer
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
import com.bodan.maplebgm.databinding.ActivityPlayBinding
class PlayActivity : AppCompatActivity() {
private var mBinding : ActivityPlayBinding? = null
private val binding get() = mBinding!!
private lateinit var mPlayer : MediaPlayer
private var score = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mBinding = ActivityPlayBinding.inflate(layoutInflater)
setContentView(binding.root)
if (intent.hasExtra("idText")) {
val id = intent.getStringExtra("idText")
Toast.makeText(applicationContext, id + "님 환영합니다!", Toast.LENGTH_LONG).show()
}
mPlayer = MediaPlayer.create(this, R.raw.abovethetreetops)
binding.bgmplayButton.setOnClickListener {
mPlayer.start()
}
binding.answerButton.setOnClickListener {
var answerText = binding.answerText.text.toString()
score = score + 1
Toast.makeText(applicationContext, "정답입니다! 현재 점수는 " + score + "점입니다.", Toast.LENGTH_LONG).show()
mPlayer.stop()
mPlayer = MediaPlayer.create(this, R.raw.restnpeace)
}
}
}
실행 영상
다음 할 일
일단 Toast 메시지가 너무 늦게 없어지는데, 빨리 없어지게 하고 싶어서 방법을 찾아봐야겠다. 그리고 정답을 입력할 때 음원 파일의 파일명뿐만 아니라 맵 이름을 입력해도 정답으로 처리될 수 있게 하는 방법을 찾아볼 것이다.
GitHub
'개인 프로젝트 > 안드로이드' 카테고리의 다른 글
[개인 프로젝트] 메이플 브금 맞추기 앱 #6 (0) | 2022.03.04 |
---|---|
[개인 프로젝트] 메이플 브금 맞추기 앱 #5 (0) | 2022.03.03 |
[개인 프로젝트] 메이플 브금 맞추기 앱 #3 (0) | 2022.02.17 |
[개인 프로젝트] 메이플 브금 맞추기 앱 #2 (0) | 2022.02.16 |
[개인 프로젝트] 메이플 브금 맞추기 앱 #1 (0) | 2022.02.15 |