Skip to content

StormCard

KIM SEONG GYU edited this page Jul 12, 2020 · 5 revisions

StormCard

사용 가능한 속성

  • android:elevation
  • app:showHeartButton
    • 우측 상단 하트 버튼의 노출 여부
  • app:isTouchable
    • 더블 탭으로 하트를 선택가능한지 여부

하트 선택 여부

  • heartState
storm_main.heartState = true
storm_main.heartState = false

if (stormcard.heartState) {
    Toast.makeText(applicationContext, "좋아요가 눌린 상태입니다", Toast.LENGTH_SHORT).show()
}

하트 선택 시 리스너 적용

  • setOnHeartStateChangedListener(listener: StormCard.OnHeartStateChangedListener)
stormcard.setOnHeartStateChangedListener(object : StormCard.OnHeartStateChangedListener {
    override fun onHeartStateChanged(state: Boolean) {
        Toast.makeText(applicationContext, "좋아요 : $state", Toast.LENGTH_SHORT).show()
    }
})

이미지 설정

  • setImageUrl(url: String)
stormcard.setImageUrl("https://avatars2.githubusercontent.com/u/57310034?s=460&u=3b6de8b863bdc2b902bf6cfe080bc8d34e93c348&v=4")
  • setBitmap(bitmap: Bitmap)

Id 설정/조회

  • setCardId(id: Int)
  • getCardId()

주의

커스텀뷰가 속하게 될 레이아웃에 대한 가로/세로 길이를 설정하는 것이 무척 어려워 (리사이클러뷰 아이템으로도 활용되기 때문에) 하드코딩 한 상태이니 layout_widthlayout_heightwrap_content 로 설정해야함

예제 코드

<com.stormers.storm.customwidget.StormCard
        android:id="@+id/stormcard_main"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:showHeartButton="true"
        app:isTouchable="true"
        android:elevation="10dp"/>

결과

image