|
@@ -0,0 +1,67 @@
|
|
|
+package com.yxf.clippathlayout.sample;
|
|
|
+
|
|
|
+import android.app.Activity;
|
|
|
+import android.content.Intent;
|
|
|
+import android.graphics.Bitmap;
|
|
|
+import android.graphics.Rect;
|
|
|
+import android.support.v7.app.AppCompatActivity;
|
|
|
+import android.os.Bundle;
|
|
|
+import android.util.DisplayMetrics;
|
|
|
+import android.view.View;
|
|
|
+import android.view.WindowManager;
|
|
|
+import android.widget.Button;
|
|
|
+
|
|
|
+import java.io.ByteArrayOutputStream;
|
|
|
+
|
|
|
+public class Transition2Activity extends AppCompatActivity {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onCreate(Bundle savedInstanceState) {
|
|
|
+ super.onCreate(savedInstanceState);
|
|
|
+ setContentView(R.layout.activity_transition2);
|
|
|
+ Button btnTransition = findViewById(R.id.btn_transition);
|
|
|
+ btnTransition.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View view) {
|
|
|
+ Bitmap screenshots = activityShot(Transition2Activity.this);
|
|
|
+ Intent intent = new Intent(Transition2Activity.this, TransitionActivity.class);
|
|
|
+ ByteArrayOutputStream bs = new ByteArrayOutputStream();
|
|
|
+ screenshots.compress(Bitmap.CompressFormat.JPEG, 100, bs);
|
|
|
+ byte[] bitmapByte = bs.toByteArray();
|
|
|
+ intent.putExtra("bitmap", bitmapByte);
|
|
|
+ startActivity(intent);
|
|
|
+ overridePendingTransition(0, 0);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * Activity screenCap
|
|
|
+ *
|
|
|
+ * @param activity
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Bitmap activityShot(Activity activity) {
|
|
|
+ /*获取windows中最顶层的view*/
|
|
|
+ View view = activity.getWindow().getDecorView();
|
|
|
+ //允许当前窗口保存缓存信息
|
|
|
+ view.setDrawingCacheEnabled(true);
|
|
|
+ view.buildDrawingCache();
|
|
|
+ //获取状态栏高度
|
|
|
+ Rect rect = new Rect();
|
|
|
+ view.getWindowVisibleDisplayFrame(rect);
|
|
|
+ int statusBarHeight = rect.top;
|
|
|
+ WindowManager windowManager = activity.getWindowManager();
|
|
|
+ //获取屏幕宽和高
|
|
|
+ DisplayMetrics outMetrics = new DisplayMetrics();
|
|
|
+ windowManager.getDefaultDisplay().getMetrics(outMetrics);
|
|
|
+ int width = outMetrics.widthPixels;
|
|
|
+ int height = outMetrics.heightPixels;
|
|
|
+ //去掉状态栏
|
|
|
+ Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache(), 0, statusBarHeight, width,
|
|
|
+ height-statusBarHeight);
|
|
|
+ //销毁缓存信息
|
|
|
+ view.destroyDrawingCache();
|
|
|
+ view.setDrawingCacheEnabled(false);
|
|
|
+ return bitmap;
|
|
|
+ }
|
|
|
+}
|