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;
}
}
}

更多相关文章

  1. android 中的日历控件
  2. Android(安卓)NetworkInfo.DetailedState 获取wifi连接状态详情
  3. #Android(安卓)获取(keystore)Maps API Key
  4. [置顶] Android(安卓)百度地图 简单实现--- 美食搜索
  5. android MotionEvent中getX()和getRawX()的区别
  6. Android(安卓)获取WIFI MAC地址的方法
  7. 去掉android的屏幕上的title bar
  8. Android获得摄像头详细信息
  9. Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面

随机推荐

  1. Android实现整理PackageManager获取所有
  2. Android(安卓)Studio报错:all packages ar
  3. android中使用selector选择器改变字体颜
  4. Android挂载本地硬盘为SD卡操作指南
  5. Android杂谈--内存泄露(1)--contentView
  6. android mediaPlayer error (-38,0)
  7. Android系统工具之自动化测试(2)
  8. Android中switch控件默认是开启/关闭以及
  9. 【android】数据库升级完整解决方案
  10. android 细节之android.view.InflateExce