Android 응용 프로그램 최초 개발 (Kotlin 편) 로그인의 기본 (2)
동북 TECH 도장의 참가자들을 위해 제작된 kotlin 한스옹의 2입니다.
그 1 여기 있습니다.
수면 가져오기 프로그램의 계속
수면 유도 어플리케이션 계속 만들기
지금까지는 화면에 문자만 표시되었지만 그림을 표시하거나 소리를 내어 보았다.
(그림: 디자이너 나나)
사진 좀 볼게요.
이미지 파일 다운로드
여기서 다운로드
https://goo.gl/1kYJmW
zip을 펼치면 그림 파일이 두 개 있습니다.
프로젝트에 이미지 파일 등록
Android Studio
drawable 아래로 복사합니다.
activity_main.xml에 ImageView를 추가하고 src에서 이미지를 지정합니다.
activity_maim.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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/rootLayout"
tools:context="org.tohokutechdojo.test.sleeping.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/sheep_1" />
</android.support.constraint.ConstraintLayout>
실행 및 이미지 표시 확인
TextView 및 ImageView
TextView...텍스트 표시용 부품
ImageView ... 이미지를 표시하는 데 사용되는 부품
애니메이션
다운로드한 이미지는 두 장입니다.
이 두 그림을 클릭할 때마다 애니메이션으로 전환됩니다.
MainActivity.kt
class MainActivity : AppCompatActivity() {
var sheepCount = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var greeting = "こんにちは"
val trialTime = Date()
val calendar = GregorianCalendar()
calendar.time = trialTime
val hour = calendar.get(Calendar.HOUR_OF_DAY)
if (hour in 1..11) {
greeting = "おはよう"
} else if (hour > 15) {
greeting = "こんばんは"
}
greeting += "ねむれませんか?"
textview.text = greeting
rootLayout.setOnClickListener {
sheepCount++
val sheepText = "ひつじが$sheepCount 匹"
textview.text = sheepText
when(sheepCount % 2) {
0 -> imageView1.setImageResource(R.drawable.sheep_1) // 追加
else -> imageView1.setImageResource(R.drawable.sheep_2) // 追加
}
}
}
}
실행해 봅시다
화면을 클릭하면 숫자가 증가하는 동시에 두 폭의 그림이 번갈아 나타나는데 마치 양이 걷는 것처럼 보인다.
소스 코드 설명
when(sheepCount % 2) {
0 -> imageView1.setImageResource(R.drawable.sheep_1) // 追加
else -> imageView1.setImageResource(R.drawable.sheep_2) // 追加
}
sheepCount % 2
양을 세는 횟수를 2의 여수로 나눈다.0 ->
나머지가 0(짝수)일 때, else ->
나머지가 0 이외(홀수)일 때, 짝수일 때 첫 번째 양의 그림(sheep_1), 홀수일 때 두 번째 양의 그림(sheep_2)을 imageView1에 설정하여 디스플레이를 전환합니다.소리 내달래요.
음성 파일을 다운로드하다.
https://goo.gl/b37aEp
다운로드 후 zip 파일 압축 풀기.
오디오 파일 포함
프로젝트 파일에 사운드 파일을 삽입합니다.
res에서 마우스 오른쪽 버튼 → New → Android 리소스 디렉토리를 클릭합니다.
열린 대화상자에서 자원 형식에서raw를 선택하여raw라는 폴더를 만듭니다.
이 raw에 소리 파일을 넣으세요.
MainActivity.수정kt:.
MainActivity.kt
class MainActivity : AppCompatActivity() {
var sheepCount = 0
var mp: MediaPlayer? = null // 追加
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var greeting = "こんにちは"
val trialTime = Date()
val calendar = GregorianCalendar()
calendar.time = trialTime
val hour = calendar.get(Calendar.HOUR_OF_DAY)
if (hour in 1..11) {
greeting = "おはよう"
} else if (hour > 15) {
greeting = "こんばんは"
}
greeting += "ねむれませんか?"
textview.text = greeting
mp = MediaPlayer.create(applicationContext, R.raw.sheep_cry1) // 追加
rootLayout.setOnClickListener {
sheepCount++
val sheepText = "ひつじが$sheepCount 匹"
textview.text = sheepText
when(sheepCount % 2) {
0 -> { // 追加
imageView1.setImageResource(R.drawable.sheep_1) // 追加
mp?.start() // 追加
}
else -> imageView1.setImageResource(R.drawable.sheep_2)
}
}
}
}
실행해 봅시다
화면을 클릭하면 양 울음소리가 날 거예요.
(소리가 안 들릴 때 단말기 볼륨 확인하세요)
소스 코드 설명
var mp: MediaPlayer? = null
Android로 사운드 파일을 재생하는 방법에는 MediaPlayer라는 클래스(부품)가 사용됩니다.이 줄은 미디어 플레이어의 대상을 보존하기 위한 변수를 정의합니다.
변수 유형 뒤에?
MediaPlayer?
이유는?에서 기술한 장면은 다음 절차를 이용하여 명세표를 작성하여 개념 디자인에서 체량의 둘레를 분석하도록 한다.
?환경과 혼합되어야 하는 각 반사광선은 환경 샘플링을 한다.
mp = MediaPlayer.create(applicationContext, R.raw.sheep_cry1)
res/raw에 등록된 오디오 파일(sheep_cry1)을 사용하여 MediaPlayer 객체를 생성합니다.나중에 이 mp를 사용하여 재생을 제어할 수 있습니다.mp?.start();
MediaPlayer 객체의 start() 명령을 호출하여 사운드를 재생합니다.뒤에 있어요?에서 기술한 장면은 다음 절차를 이용하여 명세표를 작성하여 개념 디자인에서 체량의 둘레를 분석하도록 한다.
겸사겸사 말씀드리지만, 만약 당신이 그것을 자바로 바꾸면
if (mp != null) {
mp.start()
}
하계.참고 자료
Android 응용 프로그램의 기본 개발 (2)
Reference
이 문제에 관하여(Android 응용 프로그램 최초 개발 (Kotlin 편) 로그인의 기본 (2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/TomiGie/items/0545e11e694eac7d88ec텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)