效果图:



activity_main.xml

<?xml version="1.0" encoding="utf-8"?>        
MainActivity.java

package com.example.imgod.md_6;import android.app.ActivityOptions;import android.content.Intent;import android.os.Build;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.transition.ChangeImageTransform;import android.transition.Transition;import android.util.Pair;import android.view.View;import android.view.animation.Transformation;import android.widget.ImageView;import android.widget.Toast;public class MainActivity extends AppCompatActivity implements View.OnClickListener {    private ImageView img_main;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();    }    private void initView() {        img_main = (ImageView) findViewById(R.id.img_main);        img_main.setOnClickListener(this);    }    @Override    public void onClick(View v) {        startSecondActivity();    }    private void startSecondActivity() {        Intent intent = new Intent(this, SecondActivity.class);        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {            Transition transition = new ChangeImageTransform();            transition.setDuration(3000);            getWindow().setExitTransition(transition);            ActivityOptions activityOptions = ActivityOptions.makeSceneTransitionAnimation(MainActivity.this, Pair.create((View) img_main, "big_img"));            Bundle bundle = activityOptions.toBundle();            startActivity(intent, bundle);        } else {            Toast.makeText(this, "低版本", Toast.LENGTH_SHORT).show();            startActivity(intent);        }    }}

activity_second.xml

<?xml version="1.0" encoding="utf-8"?>        

只是简单的把文字和图片的顺序调整了一下,关键代码是

  private void startSecondActivity() {        Intent intent = new Intent(this, SecondActivity.class);        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {            Transition transition = new ChangeImageTransform();            transition.setDuration(3000);            getWindow().setExitTransition(transition);            ActivityOptions activityOptions = ActivityOptions.makeSceneTransitionAnimation(MainActivity.this, Pair.create((View) img_main, "big_img"));            Bundle bundle = activityOptions.toBundle();            startActivity(intent, bundle);        } else {            Toast.makeText(this, "低版本", Toast.LENGTH_SHORT).show();            startActivity(intent);        }    }

重要的是给需要转场的view设置transitionName

转场动画需要api21以及以上.所以这个需要判断下

源码地址:https://github.com/imgod1/Md_6

更多相关文章

  1. Android(安卓)CTS Debug
  2. Android名称、版本和API level的对应关系
  3. StringTokenizer用法
  4. 【Android】Menu不同菜单的使用介绍
  5. android 创建快捷图标demo
  6. Android(安卓)AESUtils 工具类与调用方法
  7. 关于Android进程知识,你需要知道这些(一)
  8. ionic 自动编译android的release版本
  9. eclipse报错:This Android(安卓)SDK requires Android(安卓)Devel

随机推荐

  1. NDK提供的共享库(Prebuilt)
  2. 小论设计模式及在Android中的应用
  3. android binder机制之——(我是binder实例
  4. android studio 页面适配问题解决方案
  5. 关于Android(安卓)app 国际化 中英文翻译
  6. 《Android/OPhone开发完全讲义》连载(8):收
  7. android webview加载网页,文字listview和i
  8. Android中View的绘制机制
  9. 基於 Android(安卓)2.3.7 的 CyanogenMod
  10. android删除短信的处理