티스토리 뷰
728x90
반응형
아래와 같은 예제를 통해 Android에서 Choreographer를 사용하면 60fps일때 매 프레임 16.66ms마다 callback을 받을수 있다.
class MainActivity : AppCompatActivity(), Choreographer.FrameCallback {
lateinit var time: TextView
lateinit var choreographer: Choreographer
private val format = SimpleDateFormat("mm:ss.SSS", Locale.US)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
time = findViewById<TextView>(R.id.time)
choreographer = Choreographer.getInstance()
choreographer.postFrameCallback(this)
}
private val TIME_CONVERT_MS_TO_NS = 1_000_000L
private val TIME_CONVERT_NS_TO_MS = 1.0/TIME_CONVERT_MS_TO_NS
override fun doFrame(frameTimeNanos: Long) {
Log.e("TAG","doFrame ${frameTimeNanos*TIME_CONVERT_NS_TO_MS}")
time.text = format.format(Date((frameTimeNanos*TIME_CONVERT_NS_TO_MS).toLong()))
choreographer.removeFrameCallback(this)
choreographer.postFrameCallback(this)
}
}
반응형
'모바일 프로그래밍' 카테고리의 다른 글
Android Graphics Architecture - (1) BufferQueue와 gralloc (0) | 2024.02.21 |
---|---|
Activity가 종료되는 경우 (0) | 2021.03.14 |
Android View의 invalidate와 requestLayout 차이 (0) | 2021.03.14 |
Android 시스템 동영상 썸네일 추출 (0) | 2019.03.26 |
Android Google Drive API 예제 (0) | 2018.10.21 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday