본문 바로가기
안드로이드

안드로이드 3강

by 기록을안하면바보 2024. 9. 17.

트와이스 앱 만들기

그치만 트와이스 사진이 ㅂㄹ 땡기지 않음.. bts한번 만들어보니까 사진은 걍 내 맘에 드는거 쓰면 될듯

 

뉴>뉴프로젝트>엠티 뷰 엑티비티로 새 프로젝트 생성

 

먼저 스플래시 화면을 표현해 줄거다

그러러면 새로운 엑티비티 파일이 필요하다

 

생성을 해주면 일단 메인 엑티비티가 먼저 보이게 되어있다 이 설정부터 먼저 해주겠다

app 폴더 아래 manifast 파일로 이동해준다

 

메인 액티비티 아래에 intent filter라는 태그가 있는데 이를 잘라서 바로 스플래시에 붙여넣어준다

 

android:exported

true 로 되어있으면 앱에서 접근이 가능하고 false면 접근이 불가능하단다.. 자꾸 오류가 나서 우울했는데 이유를 앎

main 의 exported 속성을 false 로 해줬는데 실행 잘 되니까 일단 나둬보겟삼

 

실행했는데 앱이 두개가 설치돼서 당황티비

처음에 intent filter를 스플래시 아래에 적어주고 메인에 적혀 있던걸 안지워서 그랬다.ㅋㅋ

미안미안~

 

이제 스플래시액티비티에서 메인 엑티비티로 이동해주어야한다,

이 코드 구현은 코틀린 코드로 스플래시 액티비티 코드에서 해주면 된다

 

핸들러를 추가해준다

 

 

이렇게 빨간 글씨로 뜨면 import가 필요한 상태이기 때문에 alrt+ enter 키 사용!

 

 

 

3초 뒤에 메인 액티비티를 실행시키고 꺼주는 역할이라 생각..

 

handler에 가로줄이 있는데 경고 표시임.. 어노테이션을 추가해주면 가로줄이 사라지는데 뭐 있어도 문제는 없다..

 

 

 

지금은 constraint layout으로 되어 있는데 이걸 Linear 레이아웃으로 바꿔준다

 

제일 큰 배경 linear layout  위에 세새의 linear layout을 쌓아주고 그 안에 사진들을 삽입해준다.

 

 

 

근데 그냥 이렇게만 삽입해주면 linear 레이아웃이 가로로 세개 쌓여서 보이지 않게 된다. 따라서 세로로 정렬해주는 문장을 삽입한다.

 

레이아웃 엑티비티 이미지뷰 태그 안에서 마진과 패딩을 조절할 수 있음

 

 

이제 클릭하면 화면이 크게보이는 효과를 줘야한다.

각 이미지 뷰에 아이디를 부여해 준 다음 메인 엗티비티에서 버튼을 생성하고 그 안에 intent문장을 삽입한다.

val intent = Intent(this, insideActivity::class.java)
    startActivity(intent)
}

근데 이제 사진 보여지는 기능 뿐만 아니라 데이터까지 같이 넘겨 줄 것이다.

 

클릭 이벤트가 발생했을 때 넘겨주는 데이터에 따라 inside엑티비티에서 보여지는 화면이 달라지도록 해주겟다.

 

 

intent.putExtra("data","1")

intent에서 데이터를 넘겨주는 방법!

데이터라는 이름으로 1의 값이 전달된다

 

 

이제 데이터를 받아오는 차례이다

inside 엑티비티 파일로 넘어가서 

intent.getStringExtra("data")

로 데이터를 받아온다.

 

Toast.makeText(this,getData,Toast.LENGTH_LONG).show()

받아온 데이터를 확인하기 위해 데이터를 토스트 메세지로 출력한다.

 

 

 

이제 각 사진마다 다른 사진을 띄워줄거다

 

레이아웃 inside파일에서 이미지 뷰 화면을 크게 생성해주고 일단 hiro1의 이미지를 삽입해주었다

 

 

 

인사이드 엑티비티 코틀린 파일로 넘어가서 아까 받은 데이터 값을 비교하여 각 경우의 수 마다 레이아웃의 이미지를 변경해 주었다.

아까 레이아웃 파일에서 생성해준 이미지뷰의 이름이 imageArea 인데 그걸 변수로 저장해준다.

val memberImage =findViewById<ImageView>(R.id.memberImageArea)

 

get데이터의 값을 if문으로 비교하여 이 member image의 이미지를 바꿔준다

if(getData=="1"){
    memberImage.setImageResource(R.drawable.hiro1)
}

 

 

memberImage.setImageResource(R.drawable.hiro1)

바꿀 이미지 영역 저장 변수. 이미지 리소스 변경 함수 (바꿀 이미지 파일)

 

 

 

 

궁금해서 한번 해봤는데 까먹어서 왜 오류가 났나 했네 미친

 

intent.putExtra("data","9")
startActivity(intent)

인텐트로 데이터 전달을 먼저 한 다음에 엑티비티를 스타트 해줘야한다. 반대 순서로 하니까 오류가 난다.

 

 

'안드로이드' 카테고리의 다른 글

?!  (0) 2024.11.15
ListView  (9) 2024.11.15
안드로이드 주사위 만들기  (0) 2024.09.20
안드로이드 2주차  (0) 2024.09.16
안드로이드 1주차  (1) 2024.09.13