[Android] 액티비티 만들기 - Activity

원준·2023년 7월 13일

Android Studio

목록 보기
5/40

액티비티 ?

  • 화면의 XML파일과 내부 로직의 JAVA를 합쳐서 말하는 안드로이드에서의 단위 라고 생각하면된다.

만들기

  • 만든 프로젝트에서 빈 액티비티를 만들자.

  • 이름을 설정해주는 화면이 나오는데, Launcher Activity를 체크해주자.

    Launcher Activity ?
    프로그램을 실행 했을때 메인으로 실행해주는 옵션

안드로이드 앱 만들기

1. 화면 구성

  • 만든 액티비티에서 가장 먼저 시작한는 것은 화면을 만드는 것부터 시작한다.

    • 구성하는 화면에서 다양하게 만들 수 있는데, 기본적으로 사용하는 UI들을 보자.

      TextView

      • 텍스트를 보여주는 공간

      Plain Text

      • 텍스트를 입력하는 공간
      • 일반 텍스트, 패스워드, 이메일 등 다양하게 있다.

      Button

      • 버튼의 모양을 가진 레이아웃

      ImageView

      • 이미지를 넣을 수 있는 레이아웃
      • res - drawable 폴더에 사진을 넣으면 사용자 정의 사진을 사용 할 수 있다.
    • 필수로 작성해야하는 옵션들이 있다. 해당 옵션에 대해 알아보자.

      Layout

      • 레이아웃을 넣을때 필수적으로 설정해야하는 옵션
      • 화면에 어떤 기준으로 배치를 할 것인지에 대한 옵션이다. 해당 옵션이 있어야 고정적으로 배치가 되어 화면에 보여줄수 있고, margin(거리) 설정에도 도움이 된다.

      Constraints

      • 해당 레이아웃의 크기를 정하는 옵션
      • wrap_content ?
        • 해당 텍스트 및 사진의 크기에 맞게 조정
      • match_parent ?
        • 화면의 크기 최대로 설정
      • 크기 조정 ?
        • 30dp, 40dp 이런식으로 dp단위로 작성된다.

      id

      • 해당 레이아웃에 고유의 id값을 정해주는 옵션
      • 구분을 위해 필수적으로 중복되지 않는 id를 넣는게 좋다.

      Text

      • 텍스트를 작성하는 공간
        업로드중..
  • 내용들을 토대로 간단하게 만들어 봤다.
    업로드중..

2. 내부 로직 구현

  • 만든 화면을 토대로 내부적으로 어떻게 돌아갈지 JAVA로직을 작성하자.
    업로드중..
public class MainActivity extends AppCompatActivity {

	// 화면에서 유저와 인터렉티브(변화되는 부분)되는 뷰들을 멤버 변수로 만들어서 사용한다.
    
    // 변수이름과 화면아이디의 이름을 동일하게 하면 쉽게 찾을 수 있다.
    Button btnDice; //Button이 레이아웃의 이름을 뜻한다.
    ImageView imgDice; 
    
    //사운드 및 동영상 플레이어
    MediaPlayer mp;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        // JAVA와 XML화면을 연결하는 코드
        //activity_main.xml파일과 연결하는 코드다.
        setContentView(R.layout.activity_main);

		// 화면의 뷰에 잇는 레이아웃과 자바의 변수와 연결시키는 코드
        btnDice = findViewById(R.id.btnDice); // 해당 변수에 화면의 id를 연결시킨다.
        imgDice = findViewById(R.id.imgDice);
        // 변수 셋팅 코드 (동영상 코드도 초기화를 시켜줘야한다.)
        mp = MediaPlayer.create(MainActivity.this, R.raw.dice_sound); //사운드 준비시켜 달라

		//유저가 탭 하는것을 유저의 이벤트라고 불림
        
        //유저가 해당 버튼을 누르면 작성하는 코드 (자동완성이 있음)
        btnDice.setOnClickListener(new View.OnClickListener() {
        
        // 유저가 클릭하면,
            @Override
            public void onClick(View view) {

                Random random = new Random();

                int num = random.nextInt(5+1);
                
                mp.start(); //음악 재생
				
                //랜덤으로 얻는 숫자에 따라 다이스 이미지를 변경하는 함수
                switch (num){
                    case 0:
                    //연결시킨 이미지 레이아웃의 이미지를 변경하는 함수
                        imgDice.setImageResource(R.drawable.dice1);
                        break;
                    case 1:
                        imgDice.setImageResource(R.drawable.dice2);
                        break;
                    case 2:
                        imgDice.setImageResource(R.drawable.dice3);
                        break;
                    case 3:
                        imgDice.setImageResource(R.drawable.dice4);
                        break;
                    case 4:
                        imgDice.setImageResource(R.drawable.dice5);
                        break;
                    case 5:
                        imgDice.setImageResource(R.drawable.dice6);
                        break;
                }
            }
        });
    }
}
profile
공부해보자

0개의 댓글