android截取系统当前屏幕
16lz
2021-01-23
功能:截取当前屏幕,图片保存到SDCard某个目录下
private String savePath; //截屏后图片保存路劲 /* (non-Javadoc) * @see app.ui.TitleActivity#onCreate(android.os.Bundle) */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);setContentView(R.layout.activity_prize); savePath = getSDCardPath() + "/cut_photo"; }/** * 获取和保存当前屏幕的截图 */ private void GetandSaveCurrentImage() { // 1.构建Bitmap WindowManager windowManager = 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 = this.getWindow().getDecorView(); decorview.setDrawingCacheEnabled(true); Bmp = decorview.getDrawingCache(); // 3.保存Bitmap try { File path = new File(savePath); // 文件 String filepath = savePath + "/screen.png"; File file = new File(filepath); if (!path.exists()) { path.mkdirs(); } if (!file.exists()) { file.createNewFile(); } FileOutputStream fos = null; fos = new FileOutputStream(file); if (null != fos) { Bmp.compress(Bitmap.CompressFormat.PNG, 90, fos); fos.flush(); fos.close(); //Toast.makeText(this, "截屏文件已保存至SDCard/AndyDemo/",Toast.LENGTH_LONG).show(); } } catch (Exception e) { e.printStackTrace(); } } /** * 获取SDCard的目录路径功能 */ private String getSDCardPath() { File sdcardDir = null; // 判断SDCard是否存在 boolean sdcardExist = Environment.getExternalStorageState().equals( android.os.Environment.MEDIA_MOUNTED); if (sdcardExist) { sdcardDir = Environment.getExternalStorageDirectory(); } return sdcardDir.toString(); }
添加读写权限:
更多相关文章
- Android 判断屏幕开关状态方式总结
- Android获取屏幕状态的方式
- [android]寫一個system/bin 下的可執行文件
- Android mediaScanner 删除U盘上的文件
- android 设置全屏显示 和 自适应屏幕
- 短视频带货源码,解决Dialog 不铺满屏幕问题
- android tabHost布局之一 不继承TabActivity并以布局文件进行布