Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

why occur this exception 'You should call setScaleType ~' #402

Closed
kangsLee opened this issue Aug 9, 2016 · 6 comments
Closed

why occur this exception 'You should call setScaleType ~' #402

kangsLee opened this issue Aug 9, 2016 · 6 comments

Comments

@kangsLee
Copy link

kangsLee commented Aug 9, 2016

When exiting an activity, the following error occurs:

The ImageView's ScaleType has been changed since attaching a PhotoViewAttacher. You should call setScaleType on the PhotoViewAttacher instead of on the ImageView

I don't use scaleType in the xml or Java code.
why this happened to me?

@Jawnnypoo
Copy link
Contributor

Can you please post some code in here so that I can see how and why this is happening?

@kangsLee
Copy link
Author

kangsLee commented Aug 10, 2016

I'm using PhotoView with Picasso

  • Kotlin Code
picasso.load(imageUrl).noPlaceholder().fit().rxInto(trans_imageview).subscribe({
            progressBar.visibility = View.GONE
            val photoView = PhotoViewAttacher(trans_imageview)
            photoView.update()
        }, {toast("Error : ${it.message}")})
  • Xml Code
    <ImageView
        android:id="@+id/trans_imageview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerInParent="true"
        android:adjustViewBounds="true"
        android:transitionName="image" />

if press back button while touching photoView then ,

  • full stack trace
java.lang.IllegalStateException: The ImageView's ScaleType has been changed since attaching a PhotoViewAttacher. You should call setScaleType on the PhotoViewAttacher instead of on the ImageView
                                                                      at uk.co.senab.photoview.PhotoViewAttacher.checkImageViewScaleType(PhotoViewAttacher.java:736)
                                                                      at uk.co.senab.photoview.PhotoViewAttacher.setImageViewMatrix(PhotoViewAttacher.java:868)
                                                                      at uk.co.senab.photoview.PhotoViewAttacher.checkAndDisplayMatrix(PhotoViewAttacher.java:723)
                                                                      at uk.co.senab.photoview.PhotoViewAttacher.onDrag(PhotoViewAttacher.java:385)
                                                                      at uk.co.senab.photoview.gestures.CupcakeGestureDetector.onTouchEvent(CupcakeGestureDetector.java:96)
                                                                      at uk.co.senab.photoview.gestures.EclairGestureDetector.onTouchEvent(EclairGestureDetector.java:85)
                                                                      at uk.co.senab.photoview.gestures.FroyoGestureDetector.onTouchEvent(FroyoGestureDetector.java:66)
                                                                      at uk.co.senab.photoview.PhotoViewAttacher.onTouch(PhotoViewAttacher.java:523)
                                                                      at android.view.View.dispatchTouchEvent(View.java:9291)
                                                                      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
                                                                      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
                                                                      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
                                                                      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
                                                                      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
                                                                      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
                                                                      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
                                                                      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
                                                                      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
                                                                      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
                                                                      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
                                                                      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
                                                                      at com.android.internal.policy.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2445)
                                                                      at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent_aroundBody0(PhoneWindow.java:1756)
                                                                      at com.android.internal.policy.PhoneWindow$AjcClosure1.run(PhoneWindow.java:1)
                                                                      at android.view.PhoneWindowAO.ajc$around$android_view_PhoneWindowAO$2$99ce526bproceed(PhoneWindowAO.aj:113)
                                                                      at android.view.PhoneWindowAO.ajc$around$android_view_PhoneWindowAO$2$99ce526b(PhoneWindowAO.aj:117)
                                                                      at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1756)
                                                                      at android.app.Activity.dispatchTouchEvent(Activity.java:2800)
                                                                      at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:63)
                                                                      at com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2406)
                                                                      at android.view.View.dispatchPointerEvent(View.java:9517)
                                                                      at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4309)
                                                                      at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4175)
                                                                      at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3682)
                                                                      at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3735)
                                                                      at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3701)
                                                                      at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3709)
                                                                      at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3682)
                                                                      at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3735)
                                                                      at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3701)
                                                                      at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3828)
                                                                      at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3709)
                                                                      at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3885)
                                                                      at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3682)
                                                                      at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3735)
                                                                      at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3701)
                                                                    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3709

@bediy
Copy link

bediy commented Aug 11, 2016

shared elements transitions??

@kangsLee
Copy link
Author

I 'm using shared elements transition

@bediy
Copy link

bediy commented Aug 11, 2016

Override finishAfterTransition method and call mAttacher.cleanup().

@kangsLee
Copy link
Author

perfect! Thanks @bediy

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants