캐릭터 선택
예전 글에서 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;
}
...
캐릭터 선택까지 만들었다...
이제 남은건 음악 재생뿐...
'프로젝트 > 헬테이커 스티커 M' 카테고리의 다른 글
헬테이커 스티커 M#6 - beta버전 배포 (0) | 2021.06.20 |
---|---|
헬테이커 스티커 M#5 - bgm 재생 (0) | 2021.06.18 |
헬테이커 스티커 M#3 - 프레임 속도 선택 (0) | 2021.06.04 |
헬테이커 스티커 M#2 - 애니메이션 (0) | 2021.05.21 |
헬테이커 스티커 M#1 - Floating Widget 다시 만들기 (1) | 2021.05.14 |