Java/AndroidStudio

Android - 주사위 굴리기

하니__ 2024. 6. 4. 16:11

 

 

 

앱의 상단 액션바 없애는 방법

앱을 만드는데

 

상단에 이런 바가 굉장히 보기 싫다 없애버리자

 

 

좌측의 리소스폴더의

밸류스폴더의

테마 폴더를 들어가

xml파일을 열자

 

 

 

 

이 부분을 끝 부분만 노액션바로 바꿔주자

(night)는 야간에 자동으로 바뀌는 그 모드이니

둘다 바꿔놓도록 하자

 

 

이제 아래와 같아졌다

 

 

UI 위젯들을 액티비티에서 사용하는 방법
id값, findViewById( )

 

 

위치에 맞게 만든 다음

작동 할 녀석들의 id를 지정해주자

 

 

그리고 메인 액티비티에 들어와

코드를 작성하자

 

 

우선 화면에서 코드로 조작할 클래스를 멤버 변수로 만들어주자

Button button;
ImageView imgDice1;
ImageView imgDice2;

 

 

 

 

그리고 아래로 내려와

화면에서 만든 UI 컴포넌트와 자바의 변수를 연결한다

button = findViewById(R.id.button);
imgDice1 = findViewById(R.id.imgDice1);
imgDice2 = findViewById(R.id.imgDice2);

 

위와 같이 Id를 변수로 이름지어주면

작성하기도, 가독성도 편하다

 

 

 

버튼 클릭 동작코드 작성 법 OnClick

그리고 아래와 같이 클릭하면

무엇을 실행하는 함수를 작성한다

 button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {


	}
}

 

 

 

이제 이 안에

 

클릭했을때 뭐가 실행 될지를 적어줘야 한다

 

 

Random random = new Random();
int num1 = random.nextInt(6);
int num2 = random.nextInt(6);

 

우선은 숫자를 랜덤으로 가져온다

이때 nextInt( ) 괄호안의 숫자는 0부터 5까지의 숫자를 가져오라는 뜻이다

 

 

이제

해당 숫자에 맞게 주사위 이미지를 바꿔줘야겠다

 

if (num1 == 0 ){
    imgDice1.setImageResource(R.drawable.dice1);

0이 나오면 .setImageResource(  )로 이미지를 바꿔주는데

 

괄호안에 R.drawable.dice1을 넣어준다

이때 R은 Resource 폴더를 의미한다

 

그래서 0이 나오면 주사위 이미지 1이 나오게 한다

이 후는 copy&paste다

if (num1 == 0 ){
    imgDice1.setImageResource(R.drawable.dice1);
} else if (num1 == 1) {
    imgDice1.setImageResource(R.drawable.dice2);
} else if (num1 == 2) {
    imgDice1.setImageResource(R.drawable.dice3);
} else if (num1 == 3) {
    imgDice1.setImageResource(R.drawable.dice4);
} else if (num1 == 4) {
    imgDice1.setImageResource(R.drawable.dice5);
} else if (num1 == 5) {
    imgDice1.setImageResource(R.drawable.dice6);
}

이렇게 되면 주사위 좌측의 하나만 변하게 된다

 

 

if (num2 == 0 ){
    imgDice2.setImageResource(R.drawable.dice1);
} else if (num2 == 1) {
    imgDice2.setImageResource(R.drawable.dice2);
} else if (num2 == 2) {
    imgDice2.setImageResource(R.drawable.dice3);
} else if (num2 == 3) {
    imgDice2.setImageResource(R.drawable.dice4);
} else if (num2 == 4) {
    imgDice2.setImageResource(R.drawable.dice5);
} else if (num2 == 5) {
    imgDice2.setImageResource(R.drawable.dice6);
}

 

 

 

copy&paste 한뒤에 num1을 num2로 imageDice1을 imgeDice2로 바꿔주자

 

 

 

 

소리 넣는법

기능적인 부분은 끝났다

 

 

이제 버튼을 눌렀을때

 

주사위 굴리는 소리가 났으면 좋겠다

 

사용하기 위해 먼저 변수를 연결하자

 

 

 

그리고 사용하기 위해 자바의 변수를 연결한다

mp = MediaPlayer.create(MainActivity.this, R.raw.dice_sound);

new 가 아니라 MediaPlayer.create( )로 가져오게 되며

첫번째 파라미터는 어떤 액티비티에서 소리낼것인지,

두번째 파라미터는 파일이 있는 경로를 선택해주면 된다

 

 

그리고 사용이 되는 공간 = onClick{ }안에

mp.start();

을 넣어주자

 

 

이미지 움직임 효과

 

그리고 이번엔

 

주사위 숫자가 바뀌었을때 주사위 흔들리는 효과를 넣어주고 싶다

 

 

 Android Studio - 라이브러리 설치

 

위의 링크를 참조해 라이브러릴 설치후

 

 

 

이미지 효과를 주는 라이브러리의 사용법을 보고

그대로 사용해주자

 

YoYo.with(Techniques.Shake)
        .duration(200)
        .repeat(2)
        .playOn(imgDice1);
YoYo.with(Techniques.Shake)
        .duration(200)
        .repeat(2)
        .playOn(imgDice2);

 

 

이제 흔들리는 효과까지 완성이다

 

 

 

 

 

앱 아이콘 변경

이제 아이콘을 바꿔주자

 

리소스 폴더에서 마우스 우측 클릭하여

 

이미지 애샛을 불러오자

 

 

소스 애셋에서 경로를 선택하여

파일 아이콘을 지정해줄수 있다

 

 

 

 

 

그렇게 저장후 확인해보면

 

 

위와 같이 아이콘이 바뀌어 있는것을 확인 가능하다

 

 

앱 이름 변경

리소스 폴더의 밸류 폴더의

 

스트링즈 xml을 열자

 

<> </> 사이에 사용할 이름을 넣어주자

 

 

적용이 된 모습을 확인 가능하다