下面列出了android.app.ActivityOptions#makeSceneTransitionAnimation ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* Here we are handling the click event .
* @param v is the view.
*/
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.client4:
Intent intent = new Intent(getActivity(), ClientDetailActivity.class);
View sharedView = v.findViewById(R.id.imageView_default_profile);
String transitionName = getString(R.string.blue_name);
ActivityOptions transitionActivityOptions = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
transitionActivityOptions = ActivityOptions.makeSceneTransitionAnimation(getActivity(), sharedView, transitionName);
startActivity(intent, transitionActivityOptions.toBundle());
} else startActivity(intent);
break;
}
}
@TargetApi(21)
public static void navigateToPlaylistDetail(Activity context, String action, long firstAlbumID, String playlistName, int foregroundcolor, long playlistID, ArrayList<Pair> transitionViews) {
final Intent intent = new Intent(context, PlaylistDetailActivity.class);
if (!PreferencesUtility.getInstance(context).getSystemAnimations()) {
intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
}
intent.setAction(action);
intent.putExtra(Constants.PLAYLIST_ID, playlistID);
intent.putExtra(Constants.PLAYLIST_FOREGROUND_COLOR, foregroundcolor);
intent.putExtra(Constants.ALBUM_ID, firstAlbumID);
intent.putExtra(Constants.PLAYLIST_NAME, playlistName);
if (TimberUtils.isLollipop() && PreferencesUtility.getInstance(context).getAnimations()) {
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(MainActivity.getInstance(), transitionViews.get(0), transitionViews.get(1), transitionViews.get(2));
context.startActivity(intent, options.toBundle());
} else {
context.startActivity(intent);
}
}
@SuppressLint("RestrictedApi")
@Override
public void openProfileActivity(String userId, View view) {
Intent intent = new Intent(MainActivity.this, ProfileActivity.class);
intent.putExtra(ProfileActivity.USER_ID_EXTRA_KEY, userId);
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && view != null) {
View authorImageView = view.findViewById(R.id.authorImageView);
ActivityOptions options = ActivityOptions.
makeSceneTransitionAnimation(MainActivity.this,
new android.util.Pair<>(authorImageView, getString(R.string.post_author_image_transition_name)));
startActivityForResult(intent, ProfileActivity.CREATE_POST_FROM_PROFILE_REQUEST, options.toBundle());
} else {
startActivityForResult(intent, ProfileActivity.CREATE_POST_FROM_PROFILE_REQUEST);
}
}
@SuppressLint("RestrictedApi")
private void openPostDetailsActivity(Post post, View v) {
Intent intent = new Intent(getActivity(), PostDetailsActivity.class);
intent.putExtra(PostDetailsActivity.POST_ID_EXTRA_KEY, post.getId());
intent.putExtra(PostDetailsActivity.AUTHOR_ANIMATION_NEEDED_EXTRA_KEY, true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
View imageView = v.findViewById(R.id.postImageView);
ActivityOptions options = ActivityOptions.
makeSceneTransitionAnimation(getActivity(),
new Pair<>(imageView, getString(R.string.post_image_transition_name))
);
startActivityForResult(intent, PostDetailsActivity.UPDATE_POST_REQUEST, options.toBundle());
} else {
startActivityForResult(intent, PostDetailsActivity.UPDATE_POST_REQUEST);
}
}
@OnClick({R.id.album_layout, R.id.tv_title})
public void onViewClicked(View view) {
ShareAnimationPlayer.get().setReceiverGroup(mReceiverGroup);
switch (view.getId()) {
case R.id.album_layout:
playIcon.setVisibility(View.GONE);
ShareAnimationPlayer.get().play(mLayoutContainer, mData);
break;
case R.id.tv_title:
toNext = true;
Intent intent = new Intent(this, ShareAnimationActivityB.class);
intent.putExtra(ShareAnimationActivityB.KEY_DATA, mData);
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP){
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(
this, mLayoutContainer, "videoShare");
ActivityCompat.startActivity(this, intent, options.toBundle());
}else{
startActivity(intent);
}
break;
}
}
@SuppressLint("RestrictedApi")
private void openProfileActivity(String userId, View view) {
Intent intent = new Intent(UsersListActivity.this, ProfileActivity.class);
intent.putExtra(ProfileActivity.USER_ID_EXTRA_KEY, userId);
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && view != null) {
ImageView imageView = view.findViewById(R.id.photoImageView);
ActivityOptions options = ActivityOptions.
makeSceneTransitionAnimation(UsersListActivity.this,
new android.util.Pair<>(imageView, getString(R.string.post_author_image_transition_name)));
startActivityForResult(intent, UPDATE_FOLLOWING_STATE_REQ, options.toBundle());
} else {
startActivityForResult(intent, UPDATE_FOLLOWING_STATE_REQ);
}
}
private void startArticleDetailPager(View view, int position) {
if (mAdapter.getData().size() <= 0 || mAdapter.getData().size() < position) {
return;
}
//记录点击的文章位置,便于在文章内点击收藏返回到此界面时能展示正确的收藏状态
articlePosition = position;
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(_mActivity, view, getString(R.string.share_view));
JudgeUtils.startArticleDetailActivity(_mActivity,
options,
mAdapter.getData().get(position).getId(),
mAdapter.getData().get(position).getTitle(),
mAdapter.getData().get(position).getLink(),
mAdapter.getData().get(position).isCollect(),
false,
false);
}
@SuppressLint("RestrictedApi")
private void openPostDetailsActivity(Post post, View v) {
Intent intent = new Intent(getActivity(), PostDetailsActivity.class);
intent.putExtra(PostDetailsActivity.POST_ID_EXTRA_KEY, post.getId());
intent.putExtra(PostDetailsActivity.AUTHOR_ANIMATION_NEEDED_EXTRA_KEY, true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
View imageView = v.findViewById(R.id.postImageView);
ActivityOptions options = ActivityOptions.
makeSceneTransitionAnimation(getActivity(),
new Pair<>(imageView, getString(R.string.post_image_transition_name))
);
startActivityForResult(intent, PostDetailsActivity.UPDATE_POST_REQUEST, options.toBundle());
} else {
startActivityForResult(intent, PostDetailsActivity.UPDATE_POST_REQUEST);
}
}
@SuppressLint("RestrictedApi")
@Override
public void openProfileActivity(String userId, View view) {
Intent intent = new Intent(FollowingPostsActivity.this, ProfileActivity.class);
intent.putExtra(ProfileActivity.USER_ID_EXTRA_KEY, userId);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && view != null) {
View authorImageView = view.findViewById(R.id.authorImageView);
ActivityOptions options = ActivityOptions.
makeSceneTransitionAnimation(FollowingPostsActivity.this,
new android.util.Pair<>(authorImageView, getString(R.string.post_author_image_transition_name)));
startActivityForResult(intent, ProfileActivity.CREATE_POST_FROM_PROFILE_REQUEST, options.toBundle());
} else {
startActivityForResult(intent, ProfileActivity.CREATE_POST_FROM_PROFILE_REQUEST);
}
}
@SuppressLint("RestrictedApi")
private void openProfileActivity(String userId, View view) {
Intent intent = new Intent(UsersListActivity.this, ProfileActivity.class);
intent.putExtra(ProfileActivity.USER_ID_EXTRA_KEY, userId);
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && view != null) {
ImageView imageView = view.findViewById(R.id.photoImageView);
ActivityOptions options = ActivityOptions.
makeSceneTransitionAnimation(UsersListActivity.this,
new android.util.Pair<>(imageView, getString(R.string.post_author_image_transition_name)));
startActivityForResult(intent, UPDATE_FOLLOWING_STATE_REQ, options.toBundle());
} else {
startActivityForResult(intent, UPDATE_FOLLOWING_STATE_REQ);
}
}
private void startUsefulSitePager(View view, int position1) {
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(getActivity(), view, getString(R.string.share_view));
JudgeUtils.startArticleDetailActivity(getActivity(),
options,
mUsefulSiteDataList.get(position1).getId(),
mUsefulSiteDataList.get(position1).getName().trim(),
mUsefulSiteDataList.get(position1).getLink().trim(),
false,
false,
true);
}
private void toSearchActivity(){
Intent intent = new Intent(mActivity,SearchActivity.class);
//适配5.0以下的机型
if (Build.VERSION.SDK_INT >= 21) {
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(mActivity,
Pair.create(mSearchTv, getString(R.string.share_edit)),
Pair.create(mSearchIv, getString(R.string.share_image))
);
startActivity(intent, options.toBundle());
}else{
startActivity(intent);
}
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void onDrinkClick(int position, Drink drink) {
Intent intent = new Intent(this, DrinkActivity.class);
//TODO add drink id to intent
if (TRANSITIONS_AVAILABLE) {
TileViewHolder holder = (TileViewHolder) recyclerView.findViewHolderForAdapterPosition(position);
String transition = getString(R.string.transition_drink);
ActivityOptions options = ActivityOptions
.makeSceneTransitionAnimation(this, holder.getImageView(), transition);
startActivity(intent, options.toBundle());
} else {
startActivity(intent);
}
}
@SuppressWarnings("unchecked")
public static void startActivityWithOptions(Activity current, Intent intent, View avatar, View title) {
ActivityOptions transitionActivity =
ActivityOptions.makeSceneTransitionAnimation(current,
Pair.create(avatar, current.getString(R.string.transition_shared_avatar)),
Pair.create(title, current.getString(R.string.transition_shared_title)));
current.startActivity(intent, transitionActivity.toBundle());
}
@Override
public void onClick(View v) {
Sport currentSport = mSportsData.get(getAdapterPosition());
Intent detailIntent = new Intent(mContext, DetailActivity.class);
detailIntent.putExtra("title", currentSport.getTitle());
detailIntent.putExtra("image_resource", currentSport.getImageResource());
detailIntent.putExtra("details", currentSport.getDetails());
ActivityOptions options = ActivityOptions
.makeSceneTransitionAnimation((Activity) mContext, mSportsImage, "sportImageSharedTransition");
mContext.startActivity(detailIntent, options.toBundle());
}
private void showPlayDetail () {
Intent it = new Intent(this, PlayDetailActivity.class);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Pair<View, String> thumb = new Pair<View, String>(mMiniThumbIv, getString(R.string.translation_thumb));
ActivityOptions options = ActivityOptions
.makeSceneTransitionAnimation(this, thumb);
startActivity(it, options.toBundle());
} else {
startActivity(it);
}
overridePendingTransition(R.anim.anim_bottom_in, 0);
}
@Override
public void onItemClick(View view, int position) {
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("image",images[position]);
if (Build.VERSION.SDK_INT >=Build.VERSION_CODES.LOLLIPOP){
ActivityOptions options = ActivityOptions
.makeSceneTransitionAnimation(this, view.findViewById(R.id.imageview), "imageview");
startActivity(intent, options.toBundle());
}else{
startActivity(intent);
}
}
private void startArticleDetailPager(View view, int position) {
if (mAdapter.getData().size() <= 0 || mAdapter.getData().size() <= position) {
return;
}
articlePosition = position;
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(_mActivity, view, getString(R.string.share_view));
JudgeUtils.startArticleDetailActivity(_mActivity,
options,
mAdapter.getData().get(position).getId(),
mAdapter.getData().get(position).getTitle().trim(),
mAdapter.getData().get(position).getLink().trim(),
mAdapter.getData().get(position).isCollect(),
false,
false);
}
private void startDetailPager(View view, int position) {
if (mAdapter.getData().size() <= 0 || mAdapter.getData().size() <= position) {
return;
}
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(_mActivity, view, getString(R.string.share_view));
Intent intent = new Intent(_mActivity, KnowledgeHierarchyDetailActivity.class);
intent.putExtra(Constants.ARG_PARAM1, mAdapter.getData().get(position));
if (modelFiltering()) {
startActivity(intent, options.toBundle());
} else {
startActivity(intent);
}
}
@SuppressWarnings("UnusedDeclaration")
public void showPhoto(View view) {
Intent intent = new Intent();
intent.setClass(this, DetailActivity.class);
switch (view.getId()) {
case R.id.show_photo_1:
intent.putExtra("lat", 37.6329946);
intent.putExtra("lng", -122.4938344);
intent.putExtra("zoom", 14.0f);
intent.putExtra("title", "Pacifica Pier");
intent.putExtra("description", getResources().getText(R.string.lorem));
intent.putExtra("photo", R.drawable.photo1);
break;
case R.id.show_photo_2:
intent.putExtra("lat", 37.73284);
intent.putExtra("lng", -122.503065);
intent.putExtra("zoom", 15.0f);
intent.putExtra("title", "Pink Flamingo");
intent.putExtra("description", getResources().getText(R.string.lorem));
intent.putExtra("photo", R.drawable.photo2);
break;
case R.id.show_photo_3:
intent.putExtra("lat", 36.861897);
intent.putExtra("lng", -111.374438);
intent.putExtra("zoom", 11.0f);
intent.putExtra("title", "Antelope Canyon");
intent.putExtra("description", getResources().getText(R.string.lorem));
intent.putExtra("photo", R.drawable.photo3);
break;
case R.id.show_photo_4:
intent.putExtra("lat", 36.596125);
intent.putExtra("lng", -118.1604282);
intent.putExtra("zoom", 9.0f);
intent.putExtra("title", "Lone Pine");
intent.putExtra("description", getResources().getText(R.string.lorem));
intent.putExtra("photo", R.drawable.photo4);
break;
}
ImageView hero = (ImageView) ((View) view.getParent()).findViewById(R.id.photo);
sPhotoCache.put(intent.getIntExtra("photo", -1),
((BitmapDrawable) hero.getDrawable()).getBitmap());
ActivityOptions options =
ActivityOptions.makeSceneTransitionAnimation(this, hero, "photo_hero");
startActivity(intent, options.toBundle());
}