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,到此就实现了简单共享元素跳转了。