두 가지 활동간에 매우 간단한 전환이 있으며 때로는 중간에 이미지가 멈추고 뒤쳐져 검은 색으로 깜박입니다.글라이드를 사용하여 간단한 공유 요소 전이시 지연
글라이드에서 여러 번 shared-element-transitions을 사용했지만 이번에는 지연되지 않습니다.
이 제 활동 :
-
:이 제 활동에 대한 레이아웃
- constraintLayout는 는
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_zoom_image)
postponeEnterTransition()
back.setOnClickListener { finish() }
val url = intent.getStringExtra(ZOOM_MEDIA_URL)
Glide.with(this)
.load(url)
.apply(RequestOptions().diskCacheStrategy(DiskCacheStrategy.RESOURCE))
.into(media_zoom_image)
media_zoom_image.viewTreeObserver.addOnPreDrawListener(object : ViewTreeObserver.OnPreDrawListener {
override fun onPreDraw(): Boolean {
media_zoom_image.viewTreeObserver.removeOnPreDrawListener(this)
startPostponedEnterTransition()
return true
}
})
이다
val intent = Intent(this, MediaZoomImageActivity::class.java)
intent.putExtra(MediaZoomActivity.ZOOM_MEDIA_URL, submission.imageUrl)
val bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(this,
post_image_parallax, ViewCompat.getTransitionName(post_image_parallax)).toBundle()
startActivity(intent, bundle)
이 두번째 작업은
이 애니메이션
<changeBounds
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="200" />
,하지만 난 내 머리를 정리하고 수 없습니다 그것 주위. 두 번째 이미지에는 원래 제스처를 사용하는 청취자가 있었으며 그 이유가 여기에 있다고 생각했지만 모든 것을 주석으로 처리하는 데는 그 지연이 여전히 있습니다. 첫 번째 Activity의 이미지가 동일한 transitionName을 가진 다른 공유 요소 전이의 대상입니다. 문제가 될 수 있습니까? 내가 잘못하고 있니? ConstraintLayout에 문제가 있습니까? 글라이드에 문제가 있습니까?
도움을 미리 감사드립니다.
이 솔루션을 사용하면 더 자주 또는 덜 할 것처럼 보이지만 여전히 있습니다. –
타이밍 문제 일지 모르겠지만 일부 이미지에는 문제가 있고 일부 이미지에는 어려움이있는 것처럼 보입니다. 또한 처음에만 발생합니다. 다시 돌아 가면 두 번째로 원활합니다. 캐싱 문제 일 수 있습니까? –
이미지를 처음로드하는 데 걸리는 시간입니다. 그것은 작동해야합니다, 나는 문제가 우리가 animating하는 동안 imageview을 다시 그리기 위해 노력하고 있다고 생각합니다. 나는 대답을 갱신 할 것이다. 해볼 수 있니? –