본문 바로가기

내일배움캠프

본 캠프 37일 차

개인 과제 제출 후 해설본 보고 수정하기

  • 코드가 다른거 쳐보고 구글에도 검색해 왜 다른지 알아보기
        //데이터 받아오기
//        var data = intent?.getParcelableExtra<MyItem>(Contants.Item_OBJECT)?:
//        //?: 로 null일 경우 앱이 꺼지지 않게 넣는 데이터
//        MyItem(R.drawable.sample1,"제목","위치","내용","아이디",1000,1,1)
        //받은 데이터 집어넣기
//        binding.imgTitle.setImageResource(data.aImg)

기존에 썼던 코드인데 해설본에는

    private val data : MyItem? by lazy {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
            intent.getParcelableExtra(Contants.Item_OBJECT,MyItem::class.java)
        }else {
            intent.getParcelableExtra<MyItem>(Contants.Item_OBJECT)
        }
    }

binding.imgTitle.setImageDrawable(data?.let {
    ResourcesCompat.getDrawable(
        resources,it.aImg,null
    )
})

이렇게로 받아왔다. 대체 위에 저건 왜 들어가는 것이며, 밑에는 setImageDrawable을 사용했는데 setImageResource와 다른점이 무엇인지 찾아봤다.

 

우선 setImageResource는 res폴더에 있는 리소스만 사용 가능하다고 한다.

그리고 setImageDrawable은 다른데서 파일을 읽고 이미지를 세팅할 떄 사용하므로 이게 더 범용적인 듯 하다.

일단 이것이 뭔지만 알아보고 위에거도 좀 찾아보았다.

 

Tiramisu 이후 버전의 코드와 이전 버전의 코드가 다르기에 저렇게 써주는 것이라고 한다.

 

그리고 마지막으로 setImageDrawable을 찾아보았지만 일단 왜 저리 들어가는지는...내일 튜터님께 찾아가봐야겠다.

'내일배움캠프' 카테고리의 다른 글

본 캠프 39일 차  (0) 2024.01.15
본 캠프 38일 차  (1) 2024.01.12
본 캠프 36일 차  (1) 2024.01.10
본 캠프 35일 차  (0) 2024.01.09
본 캠프 34일 차  (1) 2024.01.08