일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 라이프사이클관리
- 안드로이드 로그보기
- 안드로이드 스튜디오 미디어재생
- AWS
- AndroidTips
- android studio
- 안드로이드 스튜디오 애니메이션 효과주기
- 앱 디버깅
- 안드로이드 스튜디오 앱이름
- 안드로이드 스튜디오 앱이름 변경
- 파이티스
- 안드로이드 개발
- PANDAS
- BottomNavigationView
- Log.i
- Android 앱 개발
- 앱네임체인지
- 안드로이드 스튜디오 하단바
- 안드로이드 스튜디오 탭바
- 안드로이드스튜디오 사용자 메시지
- 안드로이드 스튜디오
- 안디르오드 스튜디오 Logcat
- 안드로이드 스튜디오 네비게이션바
- 주사위 게임 앱
- 액티비티 라이프 사이클
- 안드로이드 스튜디오 생명주기
- 안드로이드 스튜디오 알림메시지
- Toast 메시지 띄우기
- Snackbar 메시지 띄우기
- 안드로이드 스튜디오 Fragment 화면전환
- Today
- Total
파이티스
안드로이드 스튜디오 주사위게임 앱 제작 4(완성) - 애니메이션 효과 / 효과음 주기 본문
모듈수준 Gradle
주사위 눈이 랜덤으로 바뀔때마다 주사위에 애니메이션 효과를 주기위해서 가장 먼저 해야 할 것은 모듈수준 Gradle에 아래와 같이 라이브러리를 설치해 주어야 한다.
implementation 'com.daimajia.androidanimations:library:2.4@aar'
애니메이션 로직 구현
첫번째 주사위 id : imageView2
두번째 주사위 id : imageView3
Techniques.Shake 는 애니메이션 효과중 하나로 흔들리는 효과를 준다.
duration(400) 는 애니메이션의 진행시간을 조정한다. 밀리초 단위 ( 현재 0.4초 )
repeat(0) 는 애니메이션의 반복 횟수를 결정한다. ( 현재 0번 )
YoYo.with(Techniques.Shake)
.duration(400)
.repeat(0)
.playOn(imageView2);
YoYo.with(Techniques.Shake)
.duration(400)
.repeat(0)
.playOn(imageView3);
효과음 주기
멤버변수 만들기
MediaPlayer mp;
MediaPlayer 클래스를 사용하여 리소스 폴더에 있는 오디오 파일을 재생하는 로직 구현
mp = MediaPlayer.create(MainActivity.this,R.raw.dice_sound);
지난 시간에 안드로이드 스튜디오 주사위게임 앱 만들기 1,2,3과정에서 미리 이미지와 효과음 wav파일을 복사하여 붙여넣어두었다.
버튼을 눌렀을때 효과음 재생
public void onClick(View view) 메서드 안에 mp.start(); 를 작성한다.
이는 MediaPlayer 객체의 start() 메서드를 호출하여 오디오 재생을 시작하도록 하는 것이다.
public void onClick(View view) {
// 1. 주사위 굴리는 소리
mp.start();
완성
아래는 안드로이드 스튜디오 주사위게임 앱 만들기 최종 소스코드 이다. 지난시간들의 모든 내용과 이번시간에 애니메이션 효과 및 효과음 주기까지 로직구현이 완성되었으므로 안드로이드 앱개발 공부에 도움이 되었으면 한다.
public class MainActivity extends AppCompatActivity {
ImageView imageView2;
ImageView imageView3;
Button button;
MediaPlayer mp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView2 = findViewById(R.id.imageView2);
imageView3 = findViewById(R.id.imageView3);
button = findViewById(R.id.button);
mp = MediaPlayer.create(MainActivity.this,R.raw.dice_sound);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 1. 주사위 굴리는 소리
mp.start();
Random random = new Random();
int num1 = random.nextInt(5 + 1);
int num2 = random.nextInt(5 + 1);
if (num1 == 0) {
imageView2.setImageResource(R.drawable.dice1);
} else if (num1 == 1) {
imageView2.setImageResource(R.drawable.dice2);
} else if (num1 == 2) {
imageView2.setImageResource(R.drawable.dice3);
} else if (num1 == 3) {
imageView2.setImageResource(R.drawable.dice4);
} else if (num1 == 4) {
imageView2.setImageResource(R.drawable.dice5);
} else if (num1 == 5) {
imageView2.setImageResource(R.drawable.dice6);
}
if (num2 == 0) {
imageView3.setImageResource(R.drawable.dice1);
} else if (num2 == 1) {
imageView3.setImageResource(R.drawable.dice2);
} else if (num2 == 2) {
imageView3.setImageResource(R.drawable.dice3);
} else if (num2 == 3) {
imageView3.setImageResource(R.drawable.dice4);
} else if (num2 == 4) {
imageView3.setImageResource(R.drawable.dice5);
} else if (num2 == 5) {
imageView3.setImageResource(R.drawable.dice6);
}
// 4. 에니메이션 효과를 준다.
YoYo.with(Techniques.Shake)
.duration(400)
.repeat(0)
.playOn(imageView2);
YoYo.with(Techniques.Shake)
.duration(400)
.repeat(0)
.playOn(imageView3);
}
});
}
}
애니메이션 관련 참고 링크
아래는 안드로이드 스튜디오 애니메이션 효과에 대한 공부를 할 수 있도록 정리가 되어있는 깃허브 링크 url이다. 위에서 예제로 만들었던 Shake 외에도 다양한 Animation 효과들이 있으며 많은 정보들이 잘 정리되어있으므로 많은 도움이 될것이다. https://github.com/daimajia/AndroidViewAnimations
'Android > APP 만들기' 카테고리의 다른 글
안드로이드 스튜디오 BottomNavigationView 하단탭 만들기 (화면전환) - 2 (0) | 2023.08.18 |
---|---|
안드로이드 스튜디오 BottomNavigationView 하단탭 만들기 - 1 (0) | 2023.08.17 |
안드로이드 스튜디오 주사위게임 앱 제작 3 - 로직개발하기 (0) | 2023.08.15 |
안드로이드 스튜디오 주사위게임 앱 제작 2 - 화면개발하기 (0) | 2023.08.13 |
안드로이드 스튜디오 주사위게임 앱 제작 1 - 초기 세팅하기 (0) | 2023.08.12 |