Gilde 사용하기

  • 라이브러리 추가하기
    // Gilde
    implementation 'com.github.bumptech.glide:glide:4.13.0'


  • 이미지 로딩하기

BookAdapter.kt의 바인딩 부분에 아래 코드 추가

Gilde
    .with(binding.titleTextView.context) // Context 필요, View의 컨텍스트 사용
    .load(bookModel.coverSmallUrl)       // url로 이미지 불러오기 
    .into(binding.coverSmallImageView)   // 어디에 띄울지


  • http 허용

매니페스트 파일에 추가, https 는 암호화 통신, http 는 평문 통신인데 평문 통신을 허용함(위 bookModel.coverSmallUrl 가 http 사용하기 때문)

android:useCleartextTraffic = "true"



검색 기능 추가하기

  • EditText를 1줄로 제한
android:lines="1"


  • EditText.setOnKeyListener 설정(에딧 텍스트의 키가 눌렸을 때)
binding.searchEditText.setOnKeyListener { v, keyCode, event ->
            if(keyCode == KeyEvent.KEYCODE_ENTER && event.action==KeyEvent.ACTION_DOWN){ // 엔터가 눌리면
                search(binding.)
                return@setOnKeyListener true
            }
            return@setOnKeyListener false
        }


  • 책 검색 api 사용 함수 정의(search())
    private fun search(keyword:String){
        // api키는 res 파일에 정의했음
        bookService.getBooksByName(getString(R.string.interparkAPIKey), keyword)
            .enqueue(object: Callback<SearchBookDTO>{

                override fun onResponse(
                    call: Call<SearchBookDTO>,
                    response: Response<SearchBookDTO>
                ) {
                    if(response.isSuccessful.not()) {
                        return
                    }
                    response.body()?.let{
                        adapter. (it.books)
                    }
                }

                override fun onFailure(call: Call<SearchBookDTO>, t: Throwable) {
                    Log.e(TAG,t.toString())
                }

            })
    }


텍스트 줄 개수 제한, … 붙이기

<!--1줄 이상이면 ... 붙이기-->
android:lines="1"
android:ellipsize="end"

<!--최대 3줄-->
android:maxLines="3"