Created by Andrei Diaconu from Android Iasi
https://github.com/andreidiaconu/transitions-animate-demo
Presentation (with working video) at https://andreidiaconu.github.io/transitions-animate-demo
8 Stages
grid.setOnItemClickListener(
DetailsActivity1.start(GridActivity1.this, imageUrl);
)
static void start(...,String imageUrl){
intent = new Intent(...);
}
void onCreate(){
Picasso
.with(this)
.load(imageUrl)
.into(imageView);
}
void onItemClick(){
DetailsActivity2.start(GridActivity2.this, imageUrl, view);
}
static void start(..., View initialView){
...
initialView.getGlobalVisibleRect(initialPosition);
intent.putExtra("initialPosition", initialPosition);
startActivity(intent);
}
- rtransparent
- true
from.overridePendingTransition(0,0);
void onCreate() {
if (savedInstanceState==null){
runAnimations();
}
}
runAnimations(){
imageView
.getViewTreeObserver()
.addOnPreDrawListener(
boolean onPreDraw() {
actuallyRunAnimations();
removeOnPreDrawListener(this);
return false;
});
}
void actuallyRunAnimations(){
Rect initialPosition = getIntent().getParcelableExtra(...);
imageView.getGlobalVisibleRect(endPosition);
//use initialPosition, endPosition
imageView.setScaleY(...);
imageView.setScaleX(...);
imageView.setTranslationY(...);
imageView.setTranslationX(...);
}
imageView.animate()
.scaleX(1)
.scaleY(1)
.translationX(0)
.translationY(0)
.setListener(
void onAnimationEnd() {
actionbar.animate()
.translationY(0)
.start();
}
).start();
@Override
public void finish() {
if (canAnimateBack)
runAnimationsBackwards();
else
super.finish();
}
imageView.animate()
.scaleX(...)
.scaleY(...)
.translationX(...)
.translationY(...)
.setListener(
void onAnimationEnd() {
DetailsActivity6.super.finish();
overridePendingTransition(0, 0);
}
).start();
- true
<ImageView
...
android:transitionName="shared_image"
/>
ActivityOptionsCompat
.makeSceneTransitionAnimation(from, initialView, "shared_image")
.toBundle();
getWindow().setExitTransition(new Explode());
getWindow().setEnterTransition(new Slide());
https://github.com/andreidiaconu/transitions-animate-demo
Presentation (with working video) at https://andreidiaconu.github.io/transitions-animate-demo
by Andrei Diaconu from Android Iasi