Android에서 좋은 상호작용을 얻을 수 있는 애니메이션 라이브러리 (by Kotlin)
kidach1/AndroidSwayAnimation
https://github.com/kidach1/AndroidSwayAnimation
gif라면 아직 멀어 보여서 따로 영상을 봐요.
Sample / Sample with RecyclerView
Download
build.gradle
dependencies {
compile 'com.kidach1:AndroidSwayAnimation:1.0.8'
}
Usage
애니메이션 디스플레이 영역(animatedZone), 터치 영역(touchZone), Context만 전달
SwayAnimation.ready()
할 수 있습니다.@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RelativeLayout animatedZone = (RelativeLayout) findViewById(R.id.animatedLayout);
RelativeLayout touchZone = (RelativeLayout) findViewById(R.id.touchedLayout);
SwayAnimation.ready(animatedZone, touchZone, this);
}
애니메이션 소재 사용자 정의
SwayAnimation.setDrawables(Arrays.asList(
R.drawable.ic_favorite_pink_300_48dp,
R.drawable.ic_tag_faces_amber_300_48dp,
R.drawable.ic_thumb_up_blue_a200_48dp
));
SwayAnimation.ready(animatedZone, touchZone, this);
Kotlin 관련
기본적으로 바삭바삭하게 썼는데, 대략 2점 정도이다.
(Java를 통해 액세스 가능) static 메서드
@JvmStatic
class SwayAnimation {
companion object {
@JvmStatic fun ready(animatedZone: ViewGroup, ...) {
touchedZone.setOnTouchListener { v, event ->
// ...
}
}
}
}
Calling Kotlin from Java - Kotlin Programming Languagehttps://kotlinlang.org/docs/reference/java-to-kotlin-interop.html#static-methods
Backing Fields
kotlin은 내부에서setter/getter를 자동으로 생성합니다.예를 들어
withActionBar
라는 필드가 존재할 때 다음에 직접 필드에 접근하는 방법을 언뜻 봐도 실제로는 setter를 거친다.withActionBar = true
그래서 setter를 스스로 정의하고 싶을 때// @JvmStaticを付与するためにカスタムsetterを定義
var withActionBar: Boolean = false
@JvmStatic set(bool) {
withActionBar = bool
}
이렇게 쓰면 setter를 무한정 계속 호출하여 StackOverFlow를 생성합니다.이 솔루션은 "백업장"이라는 특수 필드를 사용합니다.
말하자면 간단하다. 단지 대입지를
field
이identifier로 바꾸는 것이다.var withActionBar: Boolean = false
@JvmStatic set(bool) {
field = bool
}
Properties and Fields - Kotlin Programming Languagehttps://kotlinlang.org/docs/reference/properties.html#backing-fields
총결산
kotlin은 좋은 물건이에요.
Reference
이 문제에 관하여(Android에서 좋은 상호작용을 얻을 수 있는 애니메이션 라이브러리 (by Kotlin)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kidach1/items/a69e0542daa883abdebc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)