рд╕рд╛рдЭрд╛ рддрддреНрд╡ рд╕рдВрдХреНрд░рдордг рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред
Android 5.0 . рдХреЗ рд╕рд╛рде рдореЛрдЯреЛрд░реЛрд▓рд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛
рдХреНрдпрд╛ рдЖрдк рд╣рдореЗрдВ рдФрд░ рд╡рд┐рд╡рд░рдг рджреЗ рд╕рдХрддреЗ рд╣реИрдВ? рдЖрдкрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреНрдпрд╛ рд╣реБрдЖ?
рдирдП рдПрдВрдбреНрд░реЙрдЗрдб рд╡рд░реНрдЬрди рд▓реЙрд▓реАрдкреЙрдк рдореЗрдВ, рд╣рдо рдЗрдореЗрдЬ рд╡реНрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕рд╛рдЭрд╛ рддрддреНрд╡ рд╕рдВрдХреНрд░рдордг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЫрд╡рд┐ рдПрдХ рдЧрддрд┐рд╡рд┐рдзрд┐ рд╕реЗ рджреВрд╕рд░реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рдПрдХ рд╕реНрдореВрде рд╕рдВрдХреНрд░рдордг рдХрд░рддреА рд╣реИред SimpleDraweeView рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
рдРрдк рдХреА рдереАрдо:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowContentTransitions">true</item>
<item name="android:windowAllowEnterTransitionOverlap">true</item>
<item name="android:windowAllowReturnTransitionOverlap">true</item>
</style>
рдЧрддрд┐рд╡рд┐рдзрд┐1 рд▓реЗрдЖрдЙрдЯ.рдПрдХреНрд╕рдПрдордПрд▓:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/image"
android:layout_width="@dimen/size_1"
android:layout_height="@dimen/size_1"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"/>
</RelativeLayout>
рдЧрддрд┐рд╡рд┐рдзрд┐2 рд▓реЗрдЖрдЙрдЯ.рдПрдХреНрд╕рдПрдордПрд▓:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/image"
android:layout_width="@dimen/size_2"
android:layout_height="@dimen/size_2"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:transitionName="image_transition"/>
</RelativeLayout>
рджреВрд╕рд░реА рдЧрддрд┐рд╡рд┐рдзрд┐ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб:
Intent intent = new Intent(activity1, Activity2.class);
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(activity1, simpleDraweeView1, "image_transition");
activity1.startActivity(intent, options.toBundle());
рдЗрд╕ рдХреЛрдб рдХреЛ рдЙрди рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд╕рдВрдХреНрд░рдордг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ рдЫрд╡рд┐ рдЪрд▓рддреА рд╣реИ рдФрд░ рдЧрддрд┐рд╡рд┐рдзрд┐ 1 рдХреЗ рдКрдкрд░реА рдмрд╛рдПрдВ рдХреЛрдиреЗ рд╕реЗ рдЧрддрд┐рд╡рд┐рдзрд┐ 2 рдХреЗ рдирд┐рдЪрд▓реЗ рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рдЖрдХрд╛рд░ рдмрджрд▓рддреА рд╣реИред рдореИрдВрдиреЗ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рд╕рдорд╛рди рдХреЛрдб рд▓реЛрдбрд┐рдВрдЧ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдПрдиреАрдореЗрд╢рдиред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рднреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИ https://github.com/facebook/fresco/issues/99
рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╕рдВрд▓рдЧреНрди/рдЕрд▓рдЧ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рд╣реИ рдЬреЛ рд╕рдВрдХреНрд░рдордг рдореЗрдВ рд╣реЛрдиреЗ рдкрд░ рджреГрд╢реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рд╣реЛрдЧреАред
рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдореИрдВ рдкреБрд╖реНрдЯрд┐ рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдлреНрд░реЗрд╕реНрдХреЛ рдкрд░ рд╕рд╛рдЭрд╛ рддрддреНрд╡ рд╕рдВрдХреНрд░рдордг рдЯреВрдЯрд╛ рд╣реБрдЖ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХреЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬреЛ рдЖрдЧреЗ рдмрдврд╝ рд░рд╣реА рд╣реИред
рдореБрдЭреЗ рднреА рд╣реБрдЖред TranstitionName xml attr рдХреЛ SimpleDraweeView рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп, setImageUri() рд╡рд┐рдзрд┐ рдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛
рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?
FadeDrawable рдХреЗ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЫрд╡рд┐ рдХреЛ рдЪреЗрддрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рд▓реЙрдЧ рд╣реЛрддрд╛ рд╣реИ:
com.facebook.samples.comparison D/ViewRootImplя╣Х changeCanvasрдЕрд╕реНрдкрд╖реНрдЯрддрд╛: рдЕрдкрд╛рд░рджрд░реНрд╢реА=рдЧрд▓рдд
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдХреИрдирд╡рд╛рд╕ рдУрдкреЗрд╕рд┐рдЯреА рдЫрд╡рд┐ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рди рдХрд░реЗред
рдХреНрдпрд╛ рдмрдЧ рдареАрдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ? рдпрд╣ рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рднреА рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред :)
рдкреИрдХреЗрдЬ org.goodev.droiddddle.drawee;
рдЖрдпрд╛рдд com.facebook.drawee.generic.GenericDraweeHierarchy;
рдЖрдпрд╛рдд com.facebook.drawee.view.SimpleDraweeView;
рдЖрдпрд╛рдд android.content.Context;
рдЖрдпрд╛рдд android.graphics.Matrix;
рдЖрдпрд╛рдд android.util.AttributeSet;
рдкрдмреНрд▓рд┐рдХ рдХреНрд▓рд╛рд╕ TranslateDraweeView SimpleDraweeView рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ {
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЕрдиреБрд╡рд╛рджрдбреНрд░рд╛рд╡реА рд╡реНрдпреВ (рд╕рдВрджрд░реНрдн рд╕рдВрджрд░реНрдн) {
рд╕реБрдкрд░ (рд╕рдВрджрд░реНрдн);
}
public TranslateDraweeView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public TranslateDraweeView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public TranslateDraweeView(Context context, GenericDraweeHierarchy hierarchy) {
super(context, hierarchy);
}
// looks like overwrite this method can fix this issue
// but still don't figure out why
public void animateTransform(Matrix matrix) {
invalidate();
}
}
@goodev рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХреА рдРрд╕реА рдХреЛрдИ рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИред
@ shumin0809 рдмрд╕ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдЬреЛрдбрд╝реЗрдВ, рдпрд╣ рд╕рдВрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП рдПрдХ рдЫрд┐рдкреА рд╣реБрдИ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд┐рдзрд┐ рд╣реИред
рдореИрдВ SharedElementTransitions рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред рдкрддрд╛ рдирд╣реАрдВ рдпрд╣ рд╡рд╣реА рд╣реИ, рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдпрд╛ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реИред
_рдкреНрд░рдЬрдирди_
SharedElementTransition рдХреЗ рд▓рд┐рдП рд╕реБрдВрджрд░ рдорд╛рдирдХ рд╕реЗрдЯрдЕрдк:
_рдЕрдкреЗрдХреНрд╖рд┐рдд_
рд╕рд╛рдорд╛рдиреНрдп рдЫрд╡рд┐ рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП (рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╕реНрдХреЗрд▓ рдЯрд╛рдЗрдк рдореИрдЪ), рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рдмреАрдЪ рд╕рд╛рдЭрд╛ рд╕рдВрд╕рд╛рдзрди рдХрд╛ рдирд┐рд░реНрдмрд╛рдз рдПрдиреАрдореЗрд╢рди
_рджреЗрдЦрд╛ рдЧрдпрд╛_
SharedElementTransition рд╣реЛрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд▓рдХреНрд╖реНрдп рдЫрд╡рд┐ рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдЭрд┐рд▓рдорд┐рд▓рд╛рд╣рдЯ рд╣реЛрддреА рд╣реИ (рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓рдХреНрд╖реНрдп рдЫрд╡рд┐ рдкрд░реНрдпрд╛рдкреНрдд рдЬрд▓реНрджреА рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ)
_рдиреЛрдЯреНрд╕_
рдореИрдВрдиреЗ рд╡реЗрдм рдФрд░ рдбрд┐рд╕реНрдХ рд╕реЗ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЫрд╡рд┐ рд▓реЛрдб рд╣реЛ рдЧрдИ рд╣реИ рдФрд░ рд╕рдВрдХреНрд░рдордг рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреИрд╢ рдореЗрдВ рд╣реИред рд▓рдХреНрд╖реНрдп рдЦрдВрдб рдХрд╛ рдХреЛрдб рдареАрдХ рдЙрд╕реА рдпреВрд░реА рдХреЛ рдЦреАрдВрдЪ рд░рд╣рд╛ рд╣реИред рдореИрдВ рд╕реАрдзреЗ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ (рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рд╕реАрдЦрд╛) рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдлрд▓ рд░рд╣рд╛ред
_рд╕реЗрдЯрдЕрдк_
рдбрд┐рд╡рд╛рдЗрд╕: Nexus 5 рдФрд░ Nexus 7 (2013), рджреЛрдиреЛрдВ Android 5.1.1 (API 22) рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ
рдЕрдк рдЯреВ рдбреЗрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рдЯреВрд▓реНрд╕: рдлреНрд░реЗрд╕реНрдХреЛ (0.5.0), рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ (1.3 рдкреНрд░реАрд╡реНрдпреВ 3 рдИрдПрдкреА.0), рдХрдВрдкрд╛рдЗрд▓рдПрд╕рдбреАрдХреЗ (22), рдмрд┐рд▓реНрдб рдЯреВрд▓реНрд╕ (22.0.1)
_рдкреНрд░рд╛рдкреНрддрд┐рдпрд╛рдВ_
рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЛ рд▓рд┐рдЦрддреЗ рд╕рдордп рдореИрдВрдиреЗ 2 рдЪреАрдЬреЗрдВ рджреЗрдЦреА рд╣реИрдВ рдЬреЛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ:
@jorgemf - рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ рдЧрддрд┐рд╡рд┐рдзрд┐ 1 рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рдирдирд╛рдо рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ? https://developer.android.com/training/material/animations.html
_рдПрдХ рд╕рд╛рдЭрд╛ рддрддреНрд╡ рдХреЗ рд╕рд╛рде рдПрдХ рдЧрддрд┐рд╡рд┐рдзрд┐ рд╢реБрд░реВ рдХрд░реЗрдВ_
...
4 - android:transitionName рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рджреЛрдиреЛрдВ рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдирд╛рдо рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВред
рдореЗрд░реЗ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд╕рдВрдХреНрд░рдордг рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛред рдореИрдВ рдЖрдЬ рдЗрд╕реЗ рджреЗрдЦ рд▓реВрдВрдЧрд╛:
http://www.androiddesignpatterns.com/2015/03/activity-postponed-shared-element-transitions-part3b.html
рдореИрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рд╛рде рд╣реВрдБред рдореИрдВ рдлреНрд░реЗрд╕реНрдХреЛ 0.5.3 рдФрд░ SimpleDraweeView рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЫрд╡рд┐ рдХреЛ attr " android:transitionName " рдХреЗ рд╕рд╛рде рд▓реЛрдб рдирд╣реАрдВ рдХрд░рддрд╛ред рдХрд┐рд╕реА рдХреЛ рдлреНрд░реЗрд╕реНрдХреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд╛рд╣рд░реА рд╕рдорд╛рдзрд╛рди рдкрддрд╛ рд╣реИ?
@jorgemf рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ Activity1 Layout.xml рдореЗрдВ "рдПрдВрдбреНрд░реЙрдЗрдб-рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб" рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛: android:background= "@ android:color/transparent "
@LuizGadao рдпрджрд┐ рдЖрдк рдкреГрд╖реНрдарднреВрдорд┐ рд╕реЗрдЯ
рдХреБрдЫ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдкрд┐рдХрд╛рд╕реЛ рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВред
@jorgemf рдореИрдВ
рдЗрд╕ рдкрд░ рдХреЛрдИ рдЦрдмрд░?
@LuizGadao рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдПрдХреНрд╕рдПрдордПрд▓ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдкреЛрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдЗрд╕ рдореБрджреНрджреЗ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдФрд░ рдЖрдкрдХреЗ рдзреИрд░реНрдп рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддреЗ рд╣реИрдВред рд╣рдордиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдХреЛрд░ рдЯреАрдо рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИред рд╣рдо рдЕрдЧрд▓реЗ 30 рджрд┐рдиреЛрдВ рдХреЗ рднреАрддрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рд╕рдорд╕реНрдпрд╛ рдмрдВрдж рд╣реЛ рд╕рдХрддреА рд╣реИред
рдЗрд╕ рдкрд░ рдХреЛрдИ рдЦрдмрд░?
рдкреБрдирд╢реНрдЪ:
@goodev рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ TranslateDraweeView рдХреБрдЫ рдЙрдкрдХрд░рдгреЛрдВ рдЬреИрд╕реЗ XiaoMi2, HuaWei P8 рдкрд░ рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд░реАрдПрдВрдЯрд░рдЯреНрд░рд╛рдВрд╕рд┐рд╢рди рдЧрд▓рдд рд╕реНрдерд┐рддрд┐ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдмреЙрдХреНрд╕рдХрд╛рдЙрдВрдЯрд░ рдиреЗ рдХрд╣рд╛, Tra slateDraweeView HTC One M8 рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рди рд╣реА
рдпрджрд┐ рдЖрдк рдЪреЗрдВрдЬрдЗрдореЗрдЬрдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдЯреНрд░рд╛рдВрдЬрд┐рд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╢реЗрдпрд░ рддрддреНрд╡ рд╕рдВрдХреНрд░рдордг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЪреЗрдВрдЬрдЗрдореЗрдЬрдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдЗрдореЗрдЬ рд╡реНрдпреВ рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбреНрд░рд╛рд╡реЗ рд╡реНрдпреВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред
рдореБрдЭреЗ рдорд┐рд▓реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рд╛рдЭрд╛ рддрддреНрд╡ "рдлрд┐рдЯ рд╕реЗрдВрдЯрд░" рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдореВрд▓ рд░реВрдк рд╕реЗ рдпрд╣ "рд╕реЗрдВрдЯрд░рдХреНрд░реЙрдк" рдерд╛ред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреА рд╣реИ
https://github.com/JackFan-Z/ActivitySharedElementTransition.git
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рдПрдХ рд╕рдорд╛рдзрд╛рди рдЬреЛрдбрд╝рд╛
рдпрд╣ рдлреНрд░реЗрд╕реНрдХреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЗрд░реА рджреВрд╕рд░реА рдирд┐рдЬреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдХреНрдпрд╛ рдХреЛрдИ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрд╕рд▓реА рд╕рдорд╕реНрдпрд╛ рдХрд╣рд╛рдВ рд╣реИ?
рд╕рдВрдХреНрд░рдордг рдХреА рдЧрд▓рдд рд╢реБрд░реБрдЖрдд рдХреА рд╕реНрдерд┐рддрд┐
рд╕рдВрдХреНрд░рдордг рд╕реЗ рдкрд╣рд▓реЗ
@ рдЬреИрдХрдлреИрди-рдЬреЗрдб
рд╕рдВрдХреНрд░рдордг рдореЗрдВ рд╢реЗрдпрд░ рддрддреНрд╡ рдЕрдВрддрд┐рдо рджреГрд╢реНрдп рдХреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдорд╛рдиреЛрдВ рдкрд░ рд╕реЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрдВрддрд┐рдо рдорд╛рдиреЛрдВ рдореЗрдВ рдПрдирд┐рдореЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИред
ChangeImageTransform
рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд рд╕рд╛рдорд╛рдиреНрдп ImageView рдЫрд╡рд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдкреНрд░рд╛рд░рдВрдн рдФрд░ рдЕрдВрдд рдорд╛рдиреЛрдВ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░реЗрдЧрд╛ рдФрд░ рдлрд┐рд░ рдЫрд╡рд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд░реЗрдЧрд╛ред
рд╣рд╛рд▓рд╛рдВрдХрд┐ DraweeView
рдЫрд╡рд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИ, ChangeImageTransform
рдХрд╛ рдЫрд╡рд┐ рдкрд░ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝реЗрдЧрд╛ред
рддреЛ рдЖрдк рдЬреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рд╡рд╣ рдХреЗрд╡рд▓ рдЪреЗрдВрдЬрдмрд╛рдЙрдВрдб рдкреНрд░рднрд╛рд╡реА рд╣реЛ рд░рд╣рд╛ рд╣реИред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдореБрдЭреЗ DraweeView рдХреЗ рдЫрд╡рд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ setActualImageMatrix
рдХреЛ рднреА рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ рдпрд╣ рдкрджрд╛рд╡рдирдд рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЫрд╡рд┐ рджреГрд╢реНрдп рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ setImageMatrix
рдХреА рддрд░рд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░ рднреА, рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ DraweeViewHierarchy
рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЪреЗрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рд╣реА рдЕрдиреБрдХреВрд▓рддрд╛ рдирд╣реАрдВ рд╣реИред рддреЛ рдЖрдкрдХреЛ рдЕрдВрдд рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ onAnimationUpdate
рдХреЙрд▓ рдкрд░ рдПрдХ рдирдпрд╛ DraweeViewHierarchy
ред
рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ DraweeView рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреНрдпреЛрдВ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдмрд┐рдЯрдореИрдк рдХреЛ рд╡рд╛рдкрд╕ рдкрд╛рдиреЗ рдФрд░ ChangeImageTransform
рд╕рдВрдХреНрд░рдордг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЫрд╡рд┐ рджреГрд╢реНрдп рдмрдирд╛рдирд╛ рд╣реИред
@soapsign
рдЖрдкрдХреЗ рдХрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдЕрд╕рд▓ рдореЗрдВ рдореЗрд░реА рдирд┐рдЬреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рдбрдореА рдЫрд╡рд┐ рджреГрд╢реНрдп рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬреЛ рд╕рд╛рдЭрд╛ рддрддреНрд╡ рдХреЗ рд╕рдорд╛рди рдмрд┐рдЯрдореИрдк рд▓реЗрддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИред
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЬрд┐рд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдлрд╝реНрд░реЗрд╕реНрдХреЛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдпрд╛ рдирд╣реАрдВред
рд▓реЗрдХрд┐рди рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИ рдХрд┐ рдореИрдВ рдЙрд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЛ SimpleDraweeView рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рдиреА рд╕реЗ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
ChangeImageTransform
рдкрд░рд┐рд╡рд░реНрддрди рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рдЖрдпрд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдХреА рд╣рдорд╛рд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди DraweeView
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдПрдХ DraweeHierarchy
рдХрд┐ рдЖрдВрддрд░рд┐рдХ рдЖрдпрд╛рдо рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП -1 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддреА рд╣реИ width
рдФрд░ height
ред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ Drawee
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд╣реА рд╕реНрдХреЗрд▓ рдЯрд╛рдЗрдк рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рджреГрд╢реНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, ImageView
рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдХреЗрд▓ рдкреНрд░рдХрд╛рд░ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдбреНрд░реЙрдПрдмрд▓ рдкрджрд╛рдиреБрдХреНрд░рдо рдкреНрд░рддреНрдпреЗрдХ рдЫрд╡рд┐ рд╢рд╛рдЦрд╛ (рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░, рд╡рд┐рдлрд▓рддрд╛ рдЫрд╡рд┐, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЫрд╡рд┐, рдЖрджрд┐) рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдХреЗрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдВрддрд░рд┐рдХ рдЖрдпрд╛рдореЛрдВ рдХреЛ рджреГрд╢реНрдп рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рд╕реЗ рдЖрдХрд╛рд░ рдореЗрдВ рдмрдЧ рд╣реЛрдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рд╣реЛрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рд╕рдВрдХреНрд░рдордг рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ ChangeBounds
рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
" fresco:ImageMatrixSrc=actual " рдЬреИрд╕реЗ рдирдП рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
@boxcounter рдлрд┐рд▓рд╣рд╛рд▓ рд╣рдо рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рдЬреЛ рд╣реИ рд╡рд╣ рдареАрдХ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдк рдЕрдкрдиреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд▓рд┐рдП рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ :)
@massimocarli ChangeBounds рддрднреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рд╕рд╛рдЭрд╛ рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░ рджреЛрдиреЛрдВ рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ/рд╡рд┐рдЪрд╛рд░реЛрдВ рдкрд░ рд╕рдорд╛рди рд╣реЛред рд▓реЗрдХрд┐рди рдЬрдм рд╕рдВрдХреНрд░рдордг рдХреЗ рджреМрд░рд╛рди рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдпрд╣ рдЦрд░рд╛рдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЦрд░рд╛рдм рджрд┐рдЦрддрд╛ рд╣реИред
рдЖрдк рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддреЗ рд╣реИрдВ? ChangeImageTransform рдЗрд╕реЗ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ DraweeView рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдореЗрд░рд╛ рднреА рдпрд╣реА рд╡рд┐рдЪрд╛рд░ рд╣реИ...
@massimocarli ChangeBounds рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред
рдореИрдВ рдпрд╣реА рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдпрд╣ ImageView рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ): https://gfycat.com/HideousEarlyAndalusianhorse
рдпрд╣ SimpleDraweeView рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ: https://gfycat.com/PracticalCorruptGrouper
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдирд┐рдореЗрдЯреЗрдб рдЫрд╡рд┐ рдХреЗ рдкреАрдЫреЗ рдореВрд▓ рдЫрд╡рд┐ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рдЖрдХрд╛рд░ рд▓реЗрддреА рд╣реИред
рдЯреНрд░рд╛рдВрдЬрд┐рд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд┐рд░реНрдл рдЪреЗрдВрдЬрдмрд╛рдЙрдВрдб рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ: https://gfycat.com/SorrowfulExemplaryAntlion
рд╣реЗ рджреЛрд╕реНрддреЛрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИред рдЪреЗрдВрдЬрдмрд╛рдЙрдВрдб рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЕрдЧрд░ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдпрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдмрддрд╛рдПрдВред рд╕рд╛рдЭрд╛ рддрддреНрд╡ рд╕рдВрдХреНрд░рдордг рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬрд┐рд╕реЗ рд╕рд╛рдордЧреНрд░реА рдбрд┐рдЬрд╛рдЗрди рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдлреНрд░реНрд░реЗрд╕реНрдХреЛ рдмреЗрд╣рддрд░реАрди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдЕрдм рддрдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рджреЛрдиреЛрдВ рдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рджреЗрдВред
рдлреНрд░реЗрд╕реНрдХреЛ рджреНрд╡рд╛рд░рд╛ рдЗрд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдХреНрдпрд╛ рдХреЛрдИ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдвреВрдВрдврд╝ рдкрд╛рдпрд╛ рд╣реИ?
рдпрд╣рд╛рдВ рдореИрдВ рдЬрд┐рд╕ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рд╡рд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
https://github.com/bumptech/glide
рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░,
рдЪреЗрдВрдЬрдмрд╛рдЙрдВрдб рд╡рд┐рдзрд┐ рд╣реА рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ рдФрд░ рдореИрдВ рдлреЗрд╕рдмреБрдХ рдХреЗ рдЬрд╡рд╛рдм рд╕реЗ рдЪрдХрд┐рдд рд╣реВрдВ рдХрд┐ рд╕рд╛рдЭрд╛ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рдВрдХреНрд░рдордг рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдареАрдХ рд╣реИред
рдореБрдЭреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рд╕рд░рд▓ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдирдореВрдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред
рдЪреВрдВрдХрд┐ рдЪреЗрдВрдЬрдмрд╛рдЙрдВрдб рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди рд▓реЗрдЖрдЙрдЯ рдХреЛ рдСрдирдореЗрдЬрд░ () рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдСрдирд╕рд╛рдЗрдЬрд╝ рдЪреЗрдВрдЬ () рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд┐рд╕реА рднреА рдбреНрд░реЙрдЗрдВрдЧ рд╡реНрдпреВ рджреНрд╡рд╛рд░рд╛ рдУрд╡рд░рд░рд╛рдЗрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди рдХреЗ рджреМрд░рд╛рди рдбреНрд░реЙрдПрдмрд▓ рдХрд╛ рд╕реНрдХреЗрд▓ рдХрднреА рднреА рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рд╣рдорд╛рд░рд╛ CustomDraweeView рд╣реИ рдЬреЛ рд╕рдВрдХреНрд░рдордг рдХреЗ рджреМрд░рд╛рди TopLevelDrawable рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ:
public class CustomDraweeView extends SimpleDraweeView {
public CustomDraweeView(Context context, GenericDraweeHierarchy hierarchy) {
super(context, hierarchy);
}
public CustomDraweeView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
<strong i="10">@Override</strong>
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
Drawable drawable = getTopLevelDrawable();
if (drawable != null) {
drawable.setBounds(0, 0, w, h);
}
}
}
рдпрд╣рд╛рдВ рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рдирд╕реЗрдЯ рдХрд╛ рдПрдХреНрд╕рдПрдордПрд▓ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдлреБрд▓рд╛ рджреЗрдирд╛ рд╣реЛрдЧрд╛:
<?xml version="1.0" encoding="utf-8"?>
<transitionSet
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:duration="<strong i="14">@android</strong>:integer/config_mediumAnimTime"
android:transitionOrdering="together"
tools:targetApi="LOLLIPOP" >
<changeBounds
android:interpolator="<strong i="15">@android</strong>:interpolator/accelerate_decelerate"/>
<changeTransform
android:interpolator="<strong i="16">@android</strong>:interpolator/accelerate_decelerate"/>
</transitionSet>
рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХрдорд╛рддреНрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд╣рд▓реВ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдкреИрдорд╛рдиреЗ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЯреБрдХрдбрд╝реЗ рдЯреБрдХрдбрд╝реЗ рдпрд╛ рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрджрд┐ рдЖрдк рд╕рд╛рдЭрд╛ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рдВрдХреНрд░рдордг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
@massimocarli @tyronen
рдХреНрдпрд╛ рдлреЗрд╕рдмреБрдХ рдкрд░ рдХреЛрдИ рднреА рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВ DraweeView рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдПрдВ рдЬреЛ рдЗрд╕ рд╕рдВрд╢реЛрдзрди рдХреЗ рд╕рд╛рде рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИрдВ? рдпрджрд┐ рдХреЛрдИ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд▓-рдЕрдиреБрд░реЛрдз рдмрдирд╛рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред
рдирдорд╕реНрддреЗ! рдирдП рдлреНрд░реЗрд╕реНрдХреЛ рд░рд┐рд▓реАрдЬ рдореЗрдВ 0.10 рдХрд╕реНрдЯрдо рд╕реНрдХреЗрд▓ рдЯрд╛рдЗрдк рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рд╕реНрдХреЗрд▓рдЯрд╛рдЗрдкреНрд╕ рдХреЗ рдмреАрдЪ рдкрд░рд┐рд╡рд░реНрддрди рддреБрдЪреНрдЫ рд╣реИред рдпрд╣рд╛рдБ рдореЗрд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ
https://gist.github.com/burzumrus/a589aa7e36ca003ddaf2334218c50ad0
рдЙрдкрдпреЛрдЧ рд╕рд░рд▓ рд╣реИ
TransitionSet transitionSet = new TransitionSet();
transitionSet.addTransition(new ChangeBounds());
transitionSet.addTransition(new DraweeTransform(ScalingUtils.ScaleType.CENTER_CROP, ScalingUtils.ScaleType.FIT_CENTER));
getWindow().setSharedElementEnterTransition(transitionSet);
@burzumrus рдпрд╣ рдЕрджреНрднреБрдд рд╣реИ! рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдареАрдХ рдпрд╣реА рдореЗрд░реЗ рдорди рдореЗрдВ рдерд╛ InterpolatingScaleType
ред рдпрджрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ рдлреНрд░реЗрд╕реНрдХреЛ рдХреЗ рд▓рд┐рдП рдкреБрд▓-рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
@plamenko рдореИрдВ рдлреНрд░реЗрд╕реНрдХреЛ 0.12 рдФрд░ . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ
getWindow().setSharedElementEnterTransition(DraweeTransition.createTransitionSet(
ScalingUtils.ScaleType.CENTER_CROP, ScalingUtils.ScaleType.CENTER_CROP));
getWindow().setSharedElementEnterTransition(DraweeTransition.createTransitionSet(
ScalingUtils.ScaleType.CENTER_CROP, ScalingUtils.ScaleType.CENTER_CROP));
рдПрдиреАрдореЗрд╢рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдкрд╣рд▓реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдкрд░ рд▓реМрдЯрдиреЗ рдкрд░ рдЫрд╡рд┐ рдЧрд╛рдпрдм рд╣реЛ рд░рд╣реА рд╣реИ
рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рдЗрдиреНрд╣реЗрдВ рдлрд╝реНрд░реИрдЧрдореЗрдВрдЯ-рдЯреВ-рдлрд╝реНрд░реИрдЧрдореЗрдВрдЯ рдПрдирд┐рдореЗрд╢рди рдХреЗ рд╕рд╛рде рдЖрдЬрд╝рдорд╛рдпрд╛ рдерд╛? рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ v0.12 рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ : рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ RecyclerView рдкрд░реЗрд╢рд╛рдиреА рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗ?
2 рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ : рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ ChangeBounds
рд╕реНрд╡рдпрдВ рдХреЗрд╡рд▓ X рдФрд░ Y _window_ рдХреЛрд░реНрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рд░реАрдкреЗрд░реЗрдВрдЯрд┐рдВрдЧ рд╕рддреНрдп рдкрд░ рд╕реЗрдЯ рд╣реИред рдЗрд╕реЗ ChangeBounds
рдХреЗ setReparenting(true)
рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрдЯ рдХрд░рдирд╛ рдмрд╣рд┐рд╖реНрдХреГрдд рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп ChangeTransform
рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИред рддреЛ RecyclerView
, transitionSet.addTransition(new ChangeTransform());
рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИред (рд╡рд╛рдкрд╕реА рдПрдиреАрдореЗрд╢рди рдЕрднреА рднреА рдЦрд░рд╛рдм рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдкреНрд░рд╡реЗрд╢ рдПрдиреАрдореЗрд╢рди рдареАрдХ рд╣реИ ( рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рд╕реНрдХреЗрд▓ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реИ startValues.view
рд╕реЗ endValues.view
рдореЗрдВ createAnimator(...)
рд╣рд▓ рдХрд░рддрд╛ рд╣реИ) рдпрд╣ред)
@Gericop рдФрд░ @ladia12 0.12 рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдлрд╝реНрд░реИрдЧрдореЗрдВрдЯ-рдЯреВ-рдлрд╝реНрд░реИрдЧрдореЗрдВрдЯ рдПрдирд┐рдореЗрд╢рди рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рдЗрд╕реЗ RecyclerView рдореЗрдВ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдХреЗрд╡рд▓ 'рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди' рдЦрдВрдб рд▓реЗрдирджреЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк 'рдРрдб' рд▓реЗрдирджреЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
рдпрджрд┐ рдпрд╣ рдЖрдкрдХреА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣рд╛рдВ рдЦрдВрдб-рд╕реЗ-рдЯреБрдХрдбрд╝рд╛ рд╕рдВрдХреНрд░рдордг рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг (рднрд┐рддреНрддрд┐рдЪрд┐рддреНрд░ рдХреЗ рдмрд┐рдирд╛) рд╣реИ рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЪреАрдЬрд╝ рдкрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреА (рдЖрдк рдЬреАрдердм рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)
http://www.androidauthority.com/using-shared-element-transitions-activities-fragments-631996/
@sperochon рдореИрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд╛ рдЙрдкрдпреЛрдЧ
ChangeTransform
рдХреЛ transitionSet.addTransition(new ChangeTransform());
. рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдХреНрд░рдордг рд╕реЗрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ChangeBounds
RecyclerView
рдореЗрдВ рдкреНрд░рд╛рд░рдВрдн рджреГрд╢реНрдп рдХреА рдЧрд▓рдд рд╕реНрдерд┐рддрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ (рдпрд╣ рд╣рдореЗрд╢рд╛ рдкрд╣рд▓реЗ рддрддреНрд╡ рдХреЗ X,Y рдХреЛрд░реНрдбреНрд╕ рд▓реМрдЯрд╛рддрд╛ рд╣реИ)createAnimator(...)
if (mFromScale == mToScale)
рдХреЛ if(mFromScale == mToScale && startBounds.equals(endBounds))
рдмрджрд▓реЗрдВcreateAnimator(...)
final GenericDraweeView draweeView = (GenericDraweeView) startValues.view;
рдХреЛ final GenericDraweeView draweeView = (GenericDraweeView) endValues.view;
createAnimator(...)
рдмрджрд▓реЗрдВ ( startValues
-> endValues
рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗрдВ)AnimatorUpdateListener
рдореЗрдВ scaleType.setValue(fraction)
рдХреЙрд▓ рдХреЗ рдмрд╛рдж, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпрд╛рдВ рдбрд╛рд▓реЗрдВ:Drawable drawable = draweeView.getTopLevelDrawable();
if (drawable != null) {
drawable.setBounds(0, 0, draweeView.getWidth(), draweeView.getHeight());
}
рдХреЛрдб рдХрд╛ рдпрд╣ рдЕрдВрддрд┐рдо рднрд╛рдЧ @Aohayou рдХреЗ рд╕рдорд╛рдзрд╛рди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ CustomDraweeView
рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛)ред
Android 5.0.2 рдкрд░ рд╕рдорд░реНрдерди lib рд╕рдВрд╕реНрдХрд░рдг v24.1.1 рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдк рд╕рдорд╛рди рдЖрдХрд╛рд░ рд╡рд╛рд▓реА рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдЪреЗрддрди рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд╕рдорд╛рдзрд╛рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
@Gericop рдпрд╣рд╛рдБ рдПрдХ рдбреЗрдореЛ рд╣реИ рдХрд┐ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрднреА рдЬреАрдердм рдкрд░ рдкреНрд░рддрд┐рдмрджреНрдз рдХрд┐рдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдЕрдзрд┐рдХрддрдо рдХреЛрдб рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ: рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдкреБрдирд░реНрдЪрдХреНрд░рдг рджреГрд╢реНрдп рдореЗрдВ рдХреЗрд╡рд▓ 1 рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдлрд╝реНрд░реЗрд╕реНрдХреЛ рдХреЗ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрдирд░реНрдЪрдХреНрд░рдг рджреГрд╢реНрдп рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдкрд░ рд╕рдВрдХреНрд░рдордг рдирд╛рдо рднрд┐рдиреНрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ 1 рд╕рдВрдХреНрд░рдордг рдирд╛рдо рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ 1 рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред
https://github.com/sperochon/DemoFrescoFragment2Fragment
рдЙрдордореАрдж рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдорджрдж рдорд┐рд▓реЗрдЧреА!
@sperochon рдЗрд╕реЗ рдХрдИ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдЬрд╝рдорд╛рдПрдВред
рд╡реИрд╕реЗ, рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдбреЗрдореЛ рдХреЛ рдЕрдирдореЙрдбрд┐рдлрд╛рдЗрдб рд╕реЛрд░реНрд╕ рдХреЗ рд╕рд╛рде рдЯреЗрд╕реНрдЯ рдХрд┐рдпрд╛ред рдпрд╣ рдкрд░рд┐рдгрд╛рдо рд╣реИ:
рдпрд╣ рдкреВрд░реА рддрд░рд╣ рдЧрд▓рдд рд╣реИред рдЕрдВрддрд┐рдо рджреГрд╢реНрдп рдПрдХ рдЕрд▓рдЧ рд╕реНрдерд┐рддрд┐ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдкреИрдорд╛рдиреЗ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ "рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ" рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
@Gericop рдореИрдВрдиреЗ рдЕрднреА рдХреЛрдб рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВ рдЕрдВрдд рдЦрдВрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЖрдЙрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛ред рдлрд┐рд░ рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХреАрдЬрд┐рдпреЗред
@sperochon рдПрдкреАрдЖрдИ 23 рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ, рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореЗрд░реЗ рдбрд┐рд╡рд╛рдЗрд╕ (рдПрдкреАрдЖрдИ 21) рдкрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдПрдкреАрдЖрдИ 21 рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рднреА рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛, рдпрд╣ рд╡рд╣рд╛рдВ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рддреЛ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ: рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдПрдкреАрдЖрдИ 21 рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдПрдкреАрдЖрдИ 22 рдкрд░ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛), рд▓реЗрдХрд┐рди рдПрдкреАрдЖрдИ 23 рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ : рдЖрдкрдХрд╛ рдбреЗрдореЛ рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ ChangeBounds
рдФрд░ ChangeTransform
рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИ, рди рдХрд┐ DraweeTransition
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди Facebook рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ... рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ:
Android 5.0 + рдлреНрд░реЗрд╕реНрдХреЛ v0.11/v0.12 -> KO
Android 6.0 + рдлреНрд░реЗрд╕реНрдХреЛ v0.11/v0.12 -> OK
рдкрд╣рд▓реЗ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛...
@Gericop @sperochon рдореИрдВрдиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдорд╛рдзреНрдпрдо рдкрд░ рдПрдХ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рд▓рд┐рдЦрд╛ рд╣реИред рдХреГрдкрдпрд╛ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИред
@ladia12 рдЙрд╕ рдкреЛрд╕реНрдЯ рдХрд╛ рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ (рд╣рдо рдереЗ) ... рдЖрдкрдХреА рдмреНрд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ _inter- рдЧрддрд┐рд╡рд┐рдзрд┐ _ рд╕рдВрдХреНрд░рдордг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдЬрдмрдХрд┐ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ _inter- Fragment _ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрд╕рд▓реА рдмрдЧ рдпрд╣ рд╣реИ рдХрд┐ рдПрдкреАрдЖрдИ 21 рдХреИрд╕реЗ ChangeBounds
рдФрд░/рдпрд╛ ChangeTransform
рдЯреНрд░рд╛рдВрдЬрд┐рд╢рди рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдлреЗрд╕рдмреБрдХ рдиреЗ DraweeTransition
рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреА рд╣реИ, рдЗрд╕рд╕реЗ рдХреЛрдИ рдорджрдж рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИред рджреВрд╕рд░реА рдУрд░, рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдЗрд╕ рдкрд░ рдХрд╛рдмреВ рдкрд╛рддрд╛ рд╣реИ, рдпрджрд┐ рд╕реНрд░реЛрдд рдФрд░ рд▓рдХреНрд╖реНрдп рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдпрд╛рдо (рдЪреМрдбрд╝рд╛рдИ рдФрд░/рдпрд╛ рдКрдВрдЪрд╛рдИ) рд╣реИрдВред
рд╕рд┐рд░реНрдл рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП:
Android 5.0 + рдлреНрд░реЗрд╕реНрдХреЛ v0.11/v0.12/0.13 -> KO
Android>= 5.1 + рдлреНрд░реЗрд╕реНрдХреЛ v0.11/0.12/0.13 -> OK
@ ladia12 рдкрд╣рд▓реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рд▓реМрдЯрдиреЗ рдкрд░ рдЖрдкрдиреЗ рдореВрд▓ рдЫрд╡рд┐ рдХреЗ рдЧрд╛рдпрдм рд╣реЛрдиреЗ рдХреЗ рдореБрджреНрджреЗ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛?
@dbrant рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдкрдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ?
рджреЗрдЦреЗрдВ #1446
@ ladia12 рдкрд╣рд▓реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рд▓реМрдЯрдиреЗ рдкрд░ рдЖрдкрдиреЗ рдореВрд▓ рдЫрд╡рд┐ рдХреЗ рдЧрд╛рдпрдм рд╣реЛрдиреЗ рдХреЗ рдореБрджреНрджреЗ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛?
@ ladia12 рдкрд╣рд▓реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рд▓реМрдЯрдиреЗ рдкрд░ рдЖрдкрдиреЗ рдореВрд▓ рдЫрд╡рд┐ рдХреЗ рдЧрд╛рдпрдм рд╣реЛрдиреЗ рдХреЗ рдореБрджреНрджреЗ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛? рдореЗрд░реА рдореВрд▓ рдЫрд╡рд┐ рд░реАрд╕рд╛рдЗрдХреНрд▓рд░рд╡реНрдпреВ рдХреЗ рд╡реНрдпреВрд╣реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИ
рдореИрдВ рд╕рд╛рдЭрд╛ рддрддреНрд╡ рд╕рдВрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП рдкрд┐рдХрд╛рд╕реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдорд╛рдкреНрдд рд╣реБрдЖред рдпрд╣ рддрдп рдирд╣реАрдВ рдерд╛
рдлреНрд░реЗрд╕реНрдХреЛ рдореЗрдВред рддреЛ рдкрд┐рдХрд╛рд╕реЛ рд╣рд▓реНрдХрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ
рдлреНрд░реЗрд╕реНрдХреЛ рдХреЗ рд╕рд╛рдеред
рдмреБрдз, рдЬреВрди 19, 2019 рдореЗрдВ 5:11 рдмрдЬреЗ рдкрд░ bembem1011 [email protected] рд▓рд┐рдЦрд╛ рд╣реИ:
@ladia12 https://github.com/ladia12 рдЖрдкрдиреЗ рдХреЗ рдореБрджреНрджреЗ рдХреЛ рдХреИрд╕реЗ рд╕реБрд▓рдЭрд╛рдпрд╛
рдкрд╣рд▓реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдкрд░ рд▓реМрдЯрдиреЗ рдкрд░ рдореВрд▓ рдЫрд╡рд┐ рдЧрд╛рдпрдм рд╣реЛ рд░рд╣реА рд╣реИ? рдореЗрд░реЗ
рдореВрд▓ рдЫрд╡рд┐ рд░реАрд╕рд╛рдЗрдХреНрд▓рд░рд╡реНрдпреВ рдХреЗ рд╡реНрдпреВрд╣реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИ-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/facebook/fresco/issues/22?email_source=notifications&email_token=AAXQ5WYUP5KBJYNBOZX7CCDP3ILM5A5CNFSM4A6ZMH32YY3PNVWWWK3TUL52HS4DFVREXG43VMVBW63DN#PWSWZHJKT
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAXQ5W5EXO5SV4R2PXVTG7LP3ILM5ANCNFSM4A6ZMH3Q
.
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдпрд╣рд╛рдВ рдореИрдВ рдЬрд┐рд╕ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рд╡рд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
https://github.com/bumptech/glide