두 가지 방법으로 랜덤으로 이미지가 나오게 구현해봤다.
class HomeActivity : AppCompatActivity() {
private val imageArray = arrayOf (
R.drawable.profile,
R.drawable.profile1,
R.drawable.profile2,
R.drawable.profile3,
R.drawable.profile4
)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_home)
val finishBtn = findViewById<Button>(R.id.finishBtn)
val idText = findViewById<TextView>(R.id.getId)
val getId = intent.getStringExtra("ID")
val imageView = findViewById<ImageView>(R.id.profileview)
setRandomImage(imageView)
idText.text = getId
finishBtn.setOnClickListener {
finish()
}
}
private fun setRandomImage(imageView : ImageView) {
val randomIndex = (imageArray.indices).random()
//indices : 최소 인덱스부터 최대인덱스까지 랜덤으로 불러옴.
val randomImageResourceId = imageArray[randomIndex]
imageView.setImageResource(randomImageResourceId)
// setImageResource : ImageView의 이미지를 변경하기 위해 사용.
}
}
class HomeActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_home)
val finishBtn = findViewById<Button>(R.id.finishBtn)
val idText = findViewById<TextView>(R.id.getId)
val getId = intent.getStringExtra("ID")
val imageView = findViewById<ImageView>(R.id.profileview)
when (Random().nextInt(5)) {
// (0..4)까지의 인덱스
0 -> imageView.setImageResource(R.drawable.profile)
1-> imageView.setImageResource(R.drawable.profile1)
2 -> imageView.setImageResource(R.drawable.profile2)
3 -> imageView.setImageResource(R.drawable.profile3)
4 -> imageView.setImageResource(R.drawable.profile4)
}
idText.text = getId
finishBtn.setOnClickListener {
finish()
}
}
}
일단 둘 다 잘된다. 귀찮아서 첫번째로 구현했던 방법대로 냅둘려고 했는데 시간도 남고 해서 해봤는데 하길 잘했다 생각한다. 별다른 변수 선언 없이 random.nextInt로 0~4 사이의 무작위 값만 주니 너무나 간단히 작동한다. 두 코드 전부 짧지만 when으로 작성했을 때가 코드도 훨씬 보기 쉽고 구현하기 간단하다고 느낀다. 앞으로도 계속 코딩해보면서 어떻게 해야 간결하고 클린 코드로 작성할 수 있을까 고민해봐야할 거 같다.
(현실 : 알고리즘 입문 단계에도 벽느껴서 코드 제대로 못짬)
저도 맨날 제껄로 구현해보고 다른 방법도 분석해보거나 도전해보는데 도움이 많이 되는 것 같습니다! 🙂
배열로 구현하는 방법도 잘 보고 갑니당