728x90
반응형

캐릭터 선택

예전 글에서 ppt로 만들었던 UI를 보자

계획은 언제나 달라질 수 있다

 

캐릭터 선택은 사진과 같이 드롭다운 메뉴로 만들어보자

일일이 버튼으로 만드는 것보다는 낫겠지...

 

Spinner

안드로이드 스튜디오의 드롭다운 메뉴는 Spinner로 구현한다

먼저 메뉴에 들어갈 item들을 만들어주자

 

values 폴더에 character_list.xml 파일을 새로 만들고 캐릭터 이름들을 입력한다

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="select_character">
        <item>Azazel</item>
        <item>Cerberus</item>
        <item>Judgement</item>
        <item>Justice</item>
        <item>Lucifer</item>
        <item>Lucifer_Apron</item>
        <item>Malina</item>
        <item>Modeus</item>
        <item>Pandemonica</item>
        <item>Zdrada</item>
    </string-array>
</resources>

 

activity_main.xml에 Spinner를 만들고 entries에 string-array의 name을 입력한다

    <Spinner
        android:id="@+id/character_list"
        android:layout_width="150dp"
        android:layout_height="40dp"
        android:layout_marginStart="100dp"
        android:layout_marginLeft="100dp"
        android:layout_marginTop="228dp"
        android:entries="@array/select_character"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

 

그리고 MainActivity에 추가

String character;
...
...
Spinner character_list = (Spinner) findViewById(R.id.character_list);
...
character_select.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                character = parent.getItemAtPosition(position).toString();
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });
...

그리고 character변수를 putExtra를 이용해 넘겨준다

intent.putExtra("character", character);

 

이제 저 변수에 따라 각각의 캐릭터 이미지를 애니메이션으로 만들면 된다

 

노가다의 시간

그리고 절망의 시간

파일이름에는 대문자가 안된다고 한다

캐릭터는 10명, 각각 12개, 디렉토리랑 xml 각각...

총 240번만 하면 되네! 뭐야 별로 안되네!

하하

 

다행히 파일에서는 Ctrl+Shift+R을 통해 한번에 바꿀 수 있었다

그럼 120번 남았군

 

파일탐색기에서 여러개를 선택하고 한번에 이름을 바꿀 수 있었다

근데 시봄방 파일이름에 ' '이 들어가면 또 안되네

아자젤은 어떻게 바꾸긴 했는데 너무 남은 100개는 너무 귀찮다

프로그램을 하나 만들자

 

만들었다

https://lektion-von-erfolglosigkeit.tistory.com/132

이래서 사람은 코딩을 배워야해

이게 4차산업 혁명이지

 

좋아 변수가 잘 넘어갔는지 Log.e로 확인해보자

잘 넘어갔다

이제 값에 따른 캐릭터 선택 함수를 실행해주자

//WidgetService.java
...
switch(selected)
        {
            case "Azazel":
                selectAzazel();
            case "Cerberus":
                selectCerberus();
            case "Judgement":
                selectJudgement();
            case "Justice":
                selectJustice();
            case "Lucifer":
                selectLucifer();
            case "Lucifer_Apron":
                selectLucifer_Apron();
            case "Malina":
                selectMalina();
            case "Modeus":
                selectModeus();
            case "Pandemonica":
                selectPandemonica();
            case "Zdrada":
                selectZdrada();
        }
...

 

 

Select함수가 계속 실행되는지 캐릭터가 계속 바뀐다...

 break를 안넣었었다...

너무 오랜만에 switch문을 썼나

 

//WidgetService.java
...
 switch(selected)
        {
            case "Azazel":
                selectAzazel();
                break;
            case "Cerberus":
                selectCerberus();
                break;
            case "Judgement":
                selectJudgement();
                break;
            case "Justice":
                selectJustice();
                break;
            case "Lucifer":
                selectLucifer();
                break;
            case "Lucifer_Apron":
                selectLucifer_Apron();
                break;
            case "Malina":
                selectMalina();
                break;
            case "Modeus":
                selectModeus();
                break;
            case "Pandemonica":
                selectPandemonica();
                break;
            case "Zdrada":
                selectZdrada();
                break;
        }
...

 

캐릭터 선택까지 만들었다...

 

이제 남은건 음악 재생뿐...