Android 共享元素简单使用

Android5.0提供了一种叫做:共享元素。实现,转场时界面如丝般顺滑的过渡.学习记录一下。
展示效果如图 从活动A过渡到活动B

2.实现代码
关键在于将要共享的元素的android:transitionName属性设置相同,
这里设置为android:transitionName=“sharedimg”
活动A的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:layout_gravity="center"
    android:gravity="center">

    <android.support.v7.widget.CardView
        android:layout_gravity="center"
        android:layout_width="250dp"
        android:layout_height="250dp"
        app:cardBackgroundColor="#efefef"
        >
        <ImageView
            android:id="@+id/img"
            android:layout_gravity="top|center"
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:src="@drawable/test"
            android:transitionName="sharedimg"/>
        <TextView
            android:id="@+id/txt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|center"
            android:layout_marginBottom="10dp"
            android:textSize="25sp"
            android:text="朝霞美如你"/>
    </android.support.v7.widget.CardView>

</LinearLayout>

活动B布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Main2Activity"
    android:layout_gravity="center"
    android:gravity="center"
    android:orientation="vertical">


        <ImageView
            android:layout_width="match_parent"
            android:layout_height="400dp"
            android:layout_margin="20dp"
            android:src="@drawable/test"
            android:transitionName="sharedimg"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:textSize="25sp"
            android:text="然而却不及你美。"/>

</LinearLayout>

活动A中的启动代码
监听图片点击

package com.example.a37443.sharedelement;

import android.app.ActivityOptions;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Pair;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final ImageView img = (ImageView)findViewById(R.id.img);
        img.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this,Main2Activity.class);
                ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(MainActivity.this,img,"sharedimg");
                startActivity(intent,options.toBundle());
            }
        });
    }
}

OK,到此就实现了简单共享元素跳转了。

猜你喜欢

转载自blog.csdn.net/qq_40571249/article/details/84592034
今日推荐