안드로이드 스튜디오

안드로이드 RC CAR 게임 컨트롤러 키 코딩 Bumble Bee 버전에서 어떻게 복사하나요?

coding art 2022. 5. 11. 18:03
728x90

각종 게임이나 RC CAR 컨트롤용 키보드 안드로이드 코딩을 직접 입력해도 되고 아니면 본 블로그에서 통으로 다운받아 써도 될 것이다. 이미 수차례 지적하였지만 통으로 다운받은 프로젝트 명칭이 마음에 들지 않을 경우 사용자가 새로운 프로젝트명으로 열어 둔 파일에 activity_main.xml과 MainActicy.xml 파일을 각각 복사하고 매칭 작업을 하면 끝날 작업이지만 최근 설치한 Bumble Bee  버전에서 생각치 못했던 버그가 반복해서 여러번 발생했기에 이번 기회에 그 문제점을 처리하기 위한 요령을 함께 설명하고자 한다.

 

현재 Bumble Bee 버전에서 만들어 둔 프로젝 명이 Controller 인데 이를 복사하여 Gamekey 라는 파일명으로 성공적으로 복사하는 과정을 살펴보자.

 

Controller 파일은 블루투스 부분을 삭제하고 대신에 전진 후진 좌회전 우회전 정지 카를 클릭하면 바로 위 TestView 박스에 클릭한 버튼 명을 출력해 주는 간단한 코드로서 안드로이드 코딩 실력 증진에 두움이 될 것이다.

 

Controller 파일을 열어둔 상태에서 New-->New Project--> 팝업 창이 뜨면 Gamekey 입력-->Empty Activity  선택 --> gradlingg  작업 완료 --> Controller 의 activity_main.xml  복사-->아래 그림에서 처럼 빨간색 controller.MainActivy에서 gamekey 로 대체-->Design 버튼 클릭 후 결과를 관찰해 보자.

 

Design 모습이 아래와 같이 나타난다. 여기서 부터 코딩이 꼬이면서 특히 android:background="#FF0000" 와 같은 명령이 전혀 먹히지 않는 심각한 버그가 출현한다.

 

이 현상을 처리하기 위해서는 gamekey 의 res-->values-->themes(2)-->themes.xml 을 열어서 parent="Theme.MaterialComponents.DayNight.ActionBar"  를parent="Theme. AppCompat.Light.DayNight.ActionBar" 으로 대체하면 모든 문제가 해결된다. 즉 Controller 파일로부터 이 부분이 제대로 복사되지 않는 점에 유의하자. 이러한 점도 결국 아드로이드에서 파일명 교체가 어려운 점들 중에 하나일 것이다.

 

대체 후 Design 버튼을 누르면 아래의 결과를 볼 수 있을 것이다. Bumble Bee 버전 사용자분들게 유용한 Tip 일 것이다.

 

첨부된 파일을 다운받아 실습해 보자.

Controller.zip
0.10MB

이어서 RelativeLayout에 관해서 살펴보자. RelativeLayout 내부에 LinearLayout이 있고 그 내부에 다시 LinearLayout이 있어 합계 6개의 버튼을 위시한 위젯 요소들을 포함한다.

 

LinearLayout 의 역할은 수평(horizontal) 또는 수직(vetical)으로 단위 요소들을 배열한다. 예를 들어 Left, Stop, Eight 버튼은 수평배열이다.

아울러 한 단계 위에 보면 TextView, Forward, LinearLayout 및 Back 버튼은 수직 구조이다.

그렇다면 RelativeLayout 은 어디서 사용되는지 아래에서 확인해보자.

LinearLayout에서 layout_weightSum="3" 을 사용하고 각 버튼별로 layout_weight="1" 을 주면 3등분 될 것이다.

하지만 Stop 버튼을 중심으로 하여 그 왼쪽에 Left 버튼을 그리고 Stop 버튼 오른쪽에 Right 버튼 위치를 지정하면 순서대로 3등분하여 위치하게 될 것이다. 

실제 코드에서 빨간박스 부분을 지운 상태에서 버튼들을 건드려 보면 레이아웃이 망가짐을 확인할 수 있다.

복구하기 위해서는 Left 다음에 Stop 을 드래그 한 후 Right 을 마지막 위치에 드래그 하면 된다.

 

이러한 연습이 이루어지면 RelativeLayout 과 LinearLayout 이 무엇인지 빤짝하는 아이디어가 들지도 모르겠다.

 

MainActivity 에서는 activity_main 에서 사용된 위젯 요소들을 디른 이름으로 선언한다. 

onCreate에서 findViewByID 명령에 의해 name 을 비롯 f,l,s,r,r,b 를 초기화 하고 이들 각가으로부터 실시간으로 OnClickListenering 이 되면 그 정보를 TextView에 상속시켜 출력하도록 한다.  f,l,s,r,r,b 는 각각 병렬형으로 작성되는 바 이벤트 처리 방식에 해당한다.

 

 

다음 유튜브 영상에서 Bumble Bee 버전의 버그 복구 작업을 통해 Controller 에서 복사하여 새 파일 명칭 Gamekey 로 바꾸는 기법을 학습해 보기 바랍니다. 구독 지원 부탁드립니다.

https://youtu.be/rrrIhZUhBHw

 

 

 

 

Under Construction ...