效果图:

Android Material Design(7) 转场动画的使用_第1张图片


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. 《ArcGIS API for Android 案例教程》PDF版本
  2. Android动画效果 Android Animation
  3. android 切换activity动画
  4. Android 代码实现的动画
  5. ionic 自动编译android的release版本
  6. Lottie-移动动画效果框架
  7. Android 翻牌动画 实现
  8. Android弹性动画三种实现方式

随机推荐

  1. aFinal框架
  2. android开发技巧精髓十
  3. Android(安卓)Volley完全解析(二),使用Vol
  4. android (20)
  5. Android进程中通信的方式
  6. Android(安卓)startActivityForResult()
  7. Android(安卓)Animation之TranslateAnima
  8. android 图片加载和缓存开源项目 Picasso
  9. 通过PC鼠标键盘操控Android手机:androidsc
  10. 这款开源 Android(安卓)实时投屏软件是 Q