android 無root截屏

package com.liyoro.phonescreenshot;

import java.io.ByteArrayOutputStream;
import java.io.IOException;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.view.Display;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageView;

/**
 * 手機截屏
 * @author liyoro
 * www.liyoro.com
 *
 */
public class MainActivity extends Activity {
 private ImageView mImageView = null;
 private Button mButton = null;
 
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  mButton = (Button)findViewById(R.id.button);
  mImageView = (ImageView)findViewById(R.id.imageview);
  mButton.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View v) {

    Bitmap mBitmap = Bytes2Bimap(getCurScreenPic(MainActivity.this));
    mImageView.setImageBitmap(mBitmap);
   }
  });
 }

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  getMenuInflater().inflate(R.menu.activity_main, menu);
  return true;
 }

 public static byte[] getCurScreenPic(Activity activity) {
  // 1.構建Bitmap
  WindowManager windowManager = activity.getWindowManager();
  Display display = windowManager.getDefaultDisplay();
  int w = display.getWidth();
  int h = display.getHeight();

  Bitmap Bmp = Bitmap.createBitmap(w, h, Config.ARGB_8888);

  // 2.獲取屏幕
  View decorview = activity.getWindow().getDecorView();
  decorview.setDrawingCacheEnabled(true);
  Bmp = decorview.getDrawingCache();

  ByteArrayOutputStream baos = new ByteArrayOutputStream();

  Bmp.compress(Bitmap.CompressFormat.PNG, 90, baos);

  byte[] b = baos.toByteArray();

  try {
   baos.flush();
   baos.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
  return b;
 }

 private Bitmap Bytes2Bimap(byte[] b) {
  if (b.length != 0) {
   return BitmapFactory.decodeByteArray(b, 0, b.length);
  } else {
   return null;
  }
 }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章