packagecom.iceman.printscreen;importjava.io.File;importjava.io.FileOutputStream;importandroid.app.Activity;importandroid.graphics.Bitmap;importandroid.graphics.Bitmap.Config;importandroid.os.Bundle;importandroid.os.Environment;importandroid.view.Display;importandroid.view.LayoutInflater;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.view.WindowManager;importandroid.widget.Button;importandroid.widget.LinearLayout;importandroid.widget.Toast;publicclassPrintScreenDemoActivityextendsActivity {privateButton mButton;privateLinearLayout mLayout;privateintmPrintNum;/**Called when the activity is first created.*/@OverridepublicvoidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
LayoutInflater inf=this.getLayoutInflater();
mLayout=(LinearLayout)inf.inflate(R.layout.main,null);
setContentView(mLayout);
mButton=(Button)findViewById(R.id.print_btn);
mButton.setOnClickListener(newOnClickListener() {publicvoidonClick(View v) {
GetandSaveCurrentImage();
mPrintNum++;
mButton.setText("截屏次数:"+mPrintNum);
}
});
}privatevoidGetandSaveCurrentImage()
{//1.构建BitmapWindowManager windowManager=getWindowManager();
Display display=windowManager.getDefaultDisplay();intw=display.getWidth();inth=display.getHeight();
Bitmap Bmp=Bitmap.createBitmap( w, h, Config.ARGB_8888 );//2.获取屏幕View decorview=this.getWindow().getDecorView();
decorview.setDrawingCacheEnabled(true);
Bmp=decorview.getDrawingCache();
String SavePath=getSDCardPath()+"/PrintScreenDemo/ScreenImage";//3.保存Bitmaptry{
File path=newFile(SavePath);//文件String filepath=SavePath+"/Screen_"+mPrintNum+".png";
File file=newFile(filepath);if(!path.exists()){
path.mkdirs();
}if(!file.exists()) {
file.createNewFile();
}
FileOutputStream fos=null;
fos=newFileOutputStream(file);if(null!=fos) {
Bmp.compress(Bitmap.CompressFormat.PNG,90, fos);
fos.flush();
fos.close();
Toast.makeText(this,"截屏文件已保存至SDCard/PrintScreenDemo/ScreenImage/下", Toast.LENGTH_LONG).show();
}
}catch(Exception e) {
e.printStackTrace();
}
}/*** 获取SDCard的目录路径功能
*@return*/privateString getSDCardPath(){
File sdcardDir=null;//判断SDCard是否存在booleansdcardExist=Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);if(sdcardExist){
sdcardDir=Environment.getExternalStorageDirectory();
}returnsdcardDir.toString();
}
}