Skip to content

Commit d2f5ee4

Browse files
committed
see 09/23 log
1 parent 8e3855e commit d2f5ee4

File tree

10 files changed

+174
-58
lines changed

10 files changed

+174
-58
lines changed

app/src/main/java/com/blankj/androidutilcode/core/activity/ActivityActivity.java

Lines changed: 83 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,19 @@
11
package com.blankj.androidutilcode.core.activity;
22

3+
import android.app.Activity;
34
import android.content.Context;
45
import android.content.Intent;
6+
import android.graphics.Bitmap;
7+
import android.graphics.drawable.BitmapDrawable;
58
import android.os.Build;
69
import android.os.Bundle;
710
import android.support.v4.app.ActivityOptionsCompat;
11+
import android.support.v4.content.ContextCompat;
12+
import android.transition.Explode;
13+
import android.transition.Fade;
14+
import android.transition.TransitionInflater;
815
import android.view.View;
16+
import android.view.Window;
917
import android.widget.ImageView;
1018
import android.widget.TextView;
1119

@@ -29,10 +37,12 @@ public class ActivityActivity extends BaseBackActivity {
2937

3038
ImageView viewSharedElement;
3139
Random random = new Random();
40+
private Bitmap bitmap;
3241

3342
public static void start(Context context) {
3443
Intent starter = new Intent(context, ActivityActivity.class);
35-
context.startActivity(starter);
44+
ContextCompat.startActivity(context, starter,
45+
ActivityOptionsCompat.makeSceneTransitionAnimation((Activity) context).toBundle());
3646
}
3747

3848
@Override
@@ -42,6 +52,9 @@ public void initData(Bundle bundle) {
4252

4353
@Override
4454
public int bindLayout() {
55+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
56+
getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
57+
}
4558
return R.layout.activity_activity;
4659
}
4760

@@ -50,9 +63,13 @@ public int bindLayout() {
5063
public void initView(Bundle savedInstanceState, View view) {
5164
getToolBar().setTitle(getString(R.string.demo_activity));
5265
viewSharedElement = (ImageView) findViewById(R.id.view_shared_element);
53-
findViewById(R.id.btn_start_activity_cls).setOnClickListener(this);
54-
findViewById(R.id.btn_start_activity_cls_opt).setOnClickListener(this);
55-
findViewById(R.id.btn_start_activity_cls_anim).setOnClickListener(this);
66+
findViewById(R.id.btn_cls).setOnClickListener(this);
67+
findViewById(R.id.btn_cls_opt_anim).setOnClickListener(this);
68+
findViewById(R.id.btn_cls_opt_shared).setOnClickListener(this);
69+
findViewById(R.id.btn_cls_opt_scale_up).setOnClickListener(this);
70+
findViewById(R.id.btn_cls_opt_thumbnail_scale_up).setOnClickListener(this);
71+
findViewById(R.id.btn_cls_opt_clip_reveal).setOnClickListener(this);
72+
findViewById(R.id.btn_cls_anim).setOnClickListener(this);
5673
findViewById(R.id.btn_shared_element).setOnClickListener(this);
5774
findViewById(R.id.btn_start_home_activity).setOnClickListener(this);
5875
findViewById(R.id.btn_finish_all_activity).setOnClickListener(this);
@@ -61,6 +78,14 @@ public void initView(Bundle savedInstanceState, View view) {
6178
+ "\ngetLauncherActivity: " + ActivityUtils.getLauncherActivity(Config.PKG)
6279
+ "\ngetTopActivity: " + ActivityUtils.getTopActivity()
6380
);
81+
bitmap = ((BitmapDrawable) viewSharedElement.getDrawable()).getBitmap();
82+
83+
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
84+
Explode explode = (Explode) TransitionInflater.from(this).inflateTransition(R.transition.explode_1000);
85+
Fade fade = (Fade) TransitionInflater.from(this).inflateTransition(R.transition.fade_1000);
86+
getWindow().setEnterTransition(explode);
87+
getWindow().setReturnTransition(fade);
88+
}
6489
}
6590

6691
@Override
@@ -71,14 +96,30 @@ public void doBusiness() {
7196
@Override
7297
public void onWidgetClick(View view) {
7398
switch (view.getId()) {
74-
case R.id.btn_start_activity_cls:
99+
case R.id.btn_cls:
75100
ActivityUtils.startActivity(SharedElementActivityActivity.class);
76101
break;
77-
case R.id.btn_start_activity_cls_opt:
102+
case R.id.btn_cls_opt_anim:
103+
ActivityUtils.startActivity(SharedElementActivityActivity.class,
104+
getOption(0));
105+
break;
106+
case R.id.btn_cls_opt_shared:
107+
ActivityUtils.startActivity(SharedElementActivityActivity.class,
108+
getOption(1));
109+
break;
110+
case R.id.btn_cls_opt_scale_up:
111+
ActivityUtils.startActivity(SharedElementActivityActivity.class,
112+
getOption(2));
113+
break;
114+
case R.id.btn_cls_opt_thumbnail_scale_up:
78115
ActivityUtils.startActivity(SharedElementActivityActivity.class,
79116
getOption(3));
80117
break;
81-
case R.id.btn_start_activity_cls_anim:
118+
case R.id.btn_cls_opt_clip_reveal:
119+
ActivityUtils.startActivity(SharedElementActivityActivity.class,
120+
getOption(4));
121+
break;
122+
case R.id.btn_cls_anim:
82123
ActivityUtils.startActivity(SharedElementActivityActivity.class,
83124
R.anim.fade_in_1000, R.anim.fade_out_1000);
84125
break;
@@ -97,25 +138,44 @@ public void onWidgetClick(View view) {
97138

98139
private Bundle getOption(int type) {
99140
switch (type) {
100-
case 3:
101-
return ActivityOptionsCompat.makeThumbnailScaleUpAnimation(viewSharedElement,
102-
viewSharedElement.getDrawingCache(),
103-
viewSharedElement.getWidth() / 2,
104-
viewSharedElement.getHeight() / 2).toBundle();
105-
case 2:
106-
return ActivityOptionsCompat.makeScaleUpAnimation(viewSharedElement,
107-
viewSharedElement.getWidth() / 2, viewSharedElement.getHeight() / 2,
108-
0, 0).toBundle();
109-
case 1:
110-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
111-
return ActivityOptionsCompat.makeSceneTransitionAnimation(this,
112-
viewSharedElement,
113-
viewSharedElement.getTransitionName()).toBundle();
114-
}
115141
default:
142+
case 0:
116143
return ActivityOptionsCompat.makeCustomAnimation(this,
117144
R.anim.slide_in_right_1000,
118-
R.anim.slide_out_left_1000).toBundle();
145+
R.anim.slide_out_left_1000)
146+
.toBundle();
147+
case 1:
148+
return ActivityOptionsCompat.makeSceneTransitionAnimation(this
149+
// ,
150+
// viewSharedElement,
151+
// getString(R.string.activity_shared_element)
152+
)
153+
.toBundle();
154+
case 2:
155+
return ActivityOptionsCompat.makeScaleUpAnimation(viewSharedElement,
156+
viewSharedElement.getWidth() / 2,
157+
viewSharedElement.getHeight() / 2,
158+
0, 0)
159+
.toBundle();
160+
case 3:
161+
return ActivityOptionsCompat.makeThumbnailScaleUpAnimation(viewSharedElement,
162+
bitmap,
163+
0, 0)
164+
.toBundle();
165+
case 4:
166+
return ActivityOptionsCompat.makeClipRevealAnimation(viewSharedElement,
167+
viewSharedElement.getWidth() / 2,
168+
viewSharedElement.getHeight() / 2,
169+
0, 0)
170+
.toBundle();
171+
}
172+
}
173+
174+
@Override
175+
public void onBackPressed() {
176+
super.onBackPressed();
177+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
178+
finishAfterTransition();
119179
}
120180
}
121181
}

app/src/main/java/com/blankj/androidutilcode/core/activity/SharedElementActivityActivity.java

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,17 @@
11
package com.blankj.androidutilcode.core.activity;
22

3+
import android.app.Activity;
34
import android.content.Context;
45
import android.content.Intent;
6+
import android.os.Build;
57
import android.os.Bundle;
6-
import android.support.v4.app.ActivityCompat;
8+
import android.support.v4.app.ActivityOptionsCompat;
9+
import android.support.v4.content.ContextCompat;
10+
import android.transition.Explode;
11+
import android.transition.Fade;
12+
import android.transition.TransitionInflater;
713
import android.view.View;
14+
import android.view.Window;
815

916
import com.blankj.androidutilcode.R;
1017
import com.blankj.androidutilcode.base.BaseActivity;
@@ -21,7 +28,8 @@ public class SharedElementActivityActivity extends BaseActivity {
2128

2229
public static void start(Context context) {
2330
Intent starter = new Intent(context, SharedElementActivityActivity.class);
24-
context.startActivity(starter);
31+
ContextCompat.startActivity(context, starter,
32+
ActivityOptionsCompat.makeSceneTransitionAnimation((Activity) context).toBundle());
2533
}
2634

2735
@Override
@@ -31,13 +39,27 @@ public void initData(Bundle bundle) {
3139

3240
@Override
3341
public int bindLayout() {
42+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
43+
getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
44+
}
3445
return R.layout.activity_activity_shared_element;
3546
}
3647

3748

3849
@Override
3950
public void initView(Bundle savedInstanceState, View view) {
40-
51+
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
52+
Explode explode = (Explode) TransitionInflater.from(this).inflateTransition(R.transition.explode_1000);
53+
Fade fade = (Fade) TransitionInflater.from(this).inflateTransition(R.transition.fade_1000);
54+
getWindow().setEnterTransition(fade);
55+
getWindow().setExitTransition(explode);
56+
}
57+
findViewById(android.R.id.content).setOnClickListener(new View.OnClickListener() {
58+
@Override
59+
public void onClick(View v) {
60+
SharedElementActivityActivity.start(SharedElementActivityActivity.this);
61+
}
62+
});
4163
}
4264

4365
@Override
@@ -53,6 +75,13 @@ public void onWidgetClick(View view) {
5375
@Override
5476
protected void onDestroy() {
5577
super.onDestroy();
56-
ActivityCompat.finishAfterTransition(this);
78+
}
79+
80+
@Override
81+
public void onBackPressed() {
82+
super.onBackPressed();
83+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
84+
finishAfterTransition();
85+
}
5786
}
5887
}

app/src/main/java/com/blankj/androidutilcode/core/main/CoreUtilActivity.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22

33
import android.content.Context;
44
import android.content.Intent;
5+
import android.os.Build;
56
import android.os.Bundle;
67
import android.view.View;
8+
import android.view.Window;
79

810
import com.blankj.androidutilcode.R;
911
import com.blankj.androidutilcode.base.BaseBackActivity;
@@ -47,6 +49,9 @@ public void initData(Bundle bundle) {
4749

4850
@Override
4951
public int bindLayout() {
52+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
53+
getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
54+
}
5055
return R.layout.activity_util_core;
5156
}
5257

@@ -70,7 +75,7 @@ public void coreUtilClick(View view) {
7075
}
7176

7277
public void activityClick(View view) {
73-
startActivity(new Intent(this, ActivityActivity.class));
78+
ActivityActivity.start(this);
7479
}
7580

7681
public void appClick(View view) {

app/src/main/res/core/layout/activity_activity.xml

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,32 +21,60 @@
2121
android:layout_height="wrap_content" />
2222

2323
<Button
24-
android:id="@+id/btn_start_activity_cls"
24+
android:id="@+id/btn_cls"
2525
style="@style/WideBtnStyle"
2626
android:layout_width="match_parent"
2727
android:layout_height="wrap_content"
28-
android:text="@string/activity_start_activity_cls" />
28+
android:text="@string/activity_cls" />
2929

3030
<Button
31-
android:id="@+id/btn_start_activity_cls_opt"
31+
android:id="@+id/btn_cls_opt_anim"
3232
style="@style/WideBtnStyle"
3333
android:layout_width="match_parent"
3434
android:layout_height="wrap_content"
35-
android:text="@string/activity_start_activity_cls_opt" />
35+
android:text="@string/activity_cls_opt_anim" />
3636

3737
<Button
38-
android:id="@+id/btn_start_activity_cls_anim"
38+
android:id="@+id/btn_cls_opt_shared"
3939
style="@style/WideBtnStyle"
4040
android:layout_width="match_parent"
4141
android:layout_height="wrap_content"
42-
android:text="@string/activity_start_activity_cls_anim" />
42+
android:text="@string/activity_cls_opt_shared" />
43+
44+
<Button
45+
android:id="@+id/btn_cls_opt_scale_up"
46+
style="@style/WideBtnStyle"
47+
android:layout_width="match_parent"
48+
android:layout_height="wrap_content"
49+
android:text="@string/activity_cls_opt_scale_up" />
50+
51+
<Button
52+
android:id="@+id/btn_cls_opt_thumbnail_scale_up"
53+
style="@style/WideBtnStyle"
54+
android:layout_width="match_parent"
55+
android:layout_height="wrap_content"
56+
android:text="@string/activity_cls_opt_thumbnail_scale_up" />
57+
58+
<Button
59+
android:id="@+id/btn_cls_opt_clip_reveal"
60+
style="@style/WideBtnStyle"
61+
android:layout_width="match_parent"
62+
android:layout_height="wrap_content"
63+
android:text="@string/activity_cls_opt_clip_reveal" />
64+
65+
<Button
66+
android:id="@+id/btn_cls_anim"
67+
style="@style/WideBtnStyle"
68+
android:layout_width="match_parent"
69+
android:layout_height="wrap_content"
70+
android:text="@string/activity_cls_anim" />
4371

4472
<Button
4573
android:id="@+id/btn_shared_element"
4674
style="@style/WideBtnStyle"
4775
android:layout_width="match_parent"
4876
android:layout_height="wrap_content"
49-
android:text="@string/activity_start_shared_element_activity" />
77+
android:text="@string/activity_shared_element" />
5078

5179
<Button
5280
android:id="@+id/btn_start_home_activity"

app/src/main/res/core/layout/activity_activity_shared_element.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
xmlns:android="http://schemas.android.com/apk/res/android"
44
android:layout_width="match_parent"
55
android:layout_height="wrap_content"
6-
android:background="@color/white"
6+
android:background="@color/colorPrimary"
77
android:gravity="center_horizontal"
88
android:padding="@dimen/spacing_16">
99

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<explode xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:duration="1000" />
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<fade xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:duration="1000" />
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<slide xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:duration="1000" />

app/src/main/res/core/values/strings.xml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,13 @@
2222

2323
<!--Activity相关-->
2424
<string name="activity_shared_element">Shared Element</string>
25-
<string name="activity_start_activity_cls">Start Activity</string>
26-
<string name="activity_start_activity_cls_opt">Start Activity Option</string>
27-
<string name="activity_start_activity_cls_anim">Start Activity Anim</string>
28-
<string name="activity_start_shared_element_activity">Start Shared Element Activity</string>
25+
<string name="activity_cls">Start Activity</string>
26+
<string name="activity_cls_opt_anim">Cls Option Anim</string>
27+
<string name="activity_cls_opt_shared">Cls Option Shared</string>
28+
<string name="activity_cls_opt_scale_up">Cls Option Scale</string>
29+
<string name="activity_cls_opt_thumbnail_scale_up">Cls Option Thumbnail Scale</string>
30+
<string name="activity_cls_opt_clip_reveal">Cls Option Clip Reveal</string>
31+
<string name="activity_cls_anim">Cls Anim</string>
2932
<string name="activity_start_home_activity">Start Home Activity</string>
3033
<string name="activity_finish_all_activity">Finish All Activity</string>
3134

0 commit comments

Comments
 (0)