오늘 할일
오늘은 문자열을 ascii 코드를 사용해서 변환하는 문제였당
String이랑 Char이 어느정도 연관 있다는거 대충은 아는데
뭔가 별개로 생각하고 있었는데
오늘 문제 풀면서 String은 Iterable이라는걸 오늘 확실히 알아버림!
오늘은 금요일에 하던 선택 구현사항을 마저 구현했다.
저번에 회원가입 페이지에서 입력한 아이디 비밀번호를 로그인 화면에 넘기도록 하는 걸 구현했는데,
registerForActivityResult 개념이 이해가 어려워서 엄청 오래 걸렸었는데,
오늘은 생각보다 쉽게 했음!
일단 자기소개 페이지에서 사진을 랜덤으로 표시하면 되는건데,
FrameLayout을 사용해보고 싶어짐!
일단 혼자 레이아웃 공부했던 보람을 느껴보고싶었음..
프레임레이아웃은 공부했던 부분이기 때문에~!!!
근데 이 방법이 아니면 어뜨카징~?ㅎ.ㅎ.
근데 일단은 잘 작동하긴하는데,,ㅎ
일단은 랜덤으로 나올 이미지를 만들어줬다.
오늘 하루종일 자다가 12시에 공부 시작해버려서 시간이 별로 없었기 때문에 그냥 오리너구리 부리에만 색상을 다르게 넣어서 5개 만들었음
쏘 큐트~~!
<FrameLayout
android:id="@+id/layout_frame"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@id/tv_home_title"
app:layout_constraintHeight_percent="0.27"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<ImageView
android:id="@+id/iv_home_character1"
android:visibility="invisible"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/iv_home_character_1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_home_title">
</ImageView>
<ImageView
android:id="@+id/iv_home_character2"
android:visibility="invisible"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/iv_home_character_2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_home_title">
</ImageView>
<ImageView
android:id="@+id/iv_home_character3"
android:visibility="invisible"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/iv_home_character_3"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_home_title">
</ImageView>
<ImageView
android:id="@+id/iv_home_character4"
android:visibility="invisible"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/iv_home_character_4"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_home_title">
</ImageView>
<ImageView
android:id="@+id/iv_home_character5"
android:visibility="invisible"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/iv_home_character_5"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_home_title">
</ImageView>
</FrameLayout>
일단 xml 에서 FrameLayout을 추가하고,
그 안에 자식뷰로 랜덤으로 표시될 이미지뷰들을 추가해주는데,
이미지들은 전부
크기를 matchparent로 설정하고
visibility를 invisible로 설정해줬다.
그리고 HomeActivity.kt 파일에서 changeView라는 함수로 랜덤한 숫자를 받아서, 숫자마다 다른 이미지가 표시될수 있게 visibility를 설정해주는 기능을 만들었다.
private fun changeView(index : Int){
val randomImage1 = findViewById<ImageView>(R.id.iv_home_character1)
val randomImage2 = findViewById<ImageView>(R.id.iv_home_character2)
val randomImage3 = findViewById<ImageView>(R.id.iv_home_character3)
val randomImage4 = findViewById<ImageView>(R.id.iv_home_character4)
val randomImage5 = findViewById<ImageView>(R.id.iv_home_character5)
when (index){
0 -> {
randomImage1.setTransitionVisibility(View.VISIBLE)
randomImage2.setTransitionVisibility(View.INVISIBLE)
randomImage3.setTransitionVisibility(View.INVISIBLE)
randomImage4.setTransitionVisibility(View.INVISIBLE)
randomImage5.setTransitionVisibility(View.INVISIBLE)
}
1 -> {
randomImage1.setTransitionVisibility(View.INVISIBLE)
randomImage2.setTransitionVisibility(View.VISIBLE)
randomImage3.setTransitionVisibility(View.INVISIBLE)
randomImage4.setTransitionVisibility(View.INVISIBLE)
randomImage5.setTransitionVisibility(View.INVISIBLE)
}
2 ->{
randomImage1.setTransitionVisibility(View.INVISIBLE)
randomImage2.setTransitionVisibility(View.INVISIBLE)
randomImage3.setTransitionVisibility(View.VISIBLE)
randomImage4.setTransitionVisibility(View.INVISIBLE)
randomImage5.setTransitionVisibility(View.INVISIBLE)
}
3 -> {
randomImage1.setTransitionVisibility(View.INVISIBLE)
randomImage2.setTransitionVisibility(View.INVISIBLE)
randomImage3.setTransitionVisibility(View.INVISIBLE)
randomImage4.setTransitionVisibility(View.VISIBLE)
randomImage5.setTransitionVisibility(View.INVISIBLE)
}
4 -> {
randomImage1.setTransitionVisibility(View.INVISIBLE)
randomImage2.setTransitionVisibility(View.INVISIBLE)
randomImage3.setTransitionVisibility(View.INVISIBLE)
randomImage4.setTransitionVisibility(View.INVISIBLE)
randomImage5.setTransitionVisibility(View.VISIBLE)
}
}
}
근데 딱봐도 뭔가 반복이 많은게 더 효율적으로 반복문이라던가 조건문을 사용해야하도록 수정해야 할 것같음~~! 근데 시간이 늦어서 빨리 자고싶어서 일단 이 방법이 작동하는지만 확인하려고 그냥 이렇게 해버림 ㅋㅋ
좀 고민 없이 해서 찔리는 거같기도 한데
뭐 슈발 주말에도 공부하는 것만으로 열정아입니까!
val random = Random()
val randomIndex = random.nextInt(5)
changeView(randomIndex)
random 함수를 사용해서 랜덤한 숫자를 받아주고 그걸 changeView 함수에 넣어줬음!
랜덤하게 주둥이 색이 변하는걸 볼수있다~~!
쏘 큐트~~
오늘은 하루종일 자다가 깨서 폰좀보다가 또 자다가 하면서 게으름 오지게 피다가
밤 12시에 그래도 코드카타랑.. 과제 해야징...하고 일어났음~!
일어났음 된거자너~한잔해~!
그래서 좀 더 공부할까? 하다가 그냥 다시 누울거임~!ㅎㅎㅎ
코드카타 푸셨잖아~ 과제..음.. 하셨잖아~