Android实现截屏并保存操作功能
该篇文章是说明在Android手机或平板电脑中如何实现截取当前屏幕的功能,并把截取的屏幕保存到SDCard中的某个目录文件夹下面。
实现的代码如下:
/** *获取和保存当前屏幕的截图 */ privatevoidGetandSaveCurrentImage() { //1.构建Bitmap WindowManagerwindowManager=getWindowManager(); Displaydisplay=windowManager.getDefaultDisplay(); intw=display.getWidth(); inth=display.getHeight(); BitmapBmp=Bitmap.createBitmap(w,h,Config.ARGB_8888); //2.获取屏幕 Viewdecorview=this.getWindow().getDecorView(); decorview.setDrawingCacheEnabled(true); Bmp=decorview.getDrawingCache(); StringSavePath=getSDCardPath()+"/AndyDemo/ScreenImage"; //3.保存Bitmap try{ Filepath=newFile(SavePath); //文件 Stringfilepath=SavePath+"/Screen_1.png"; Filefile=newFile(filepath); if(!path.exists()){ path.mkdirs(); } if(!file.exists()){ file.createNewFile(); } FileOutputStreamfos=null; fos=newFileOutputStream(file); if(null!=fos){ Bmp.compress(Bitmap.CompressFormat.PNG,90,fos); fos.flush(); fos.close(); Toast.makeText(mContext,"截屏文件已保存至SDCard/AndyDemo/ScreenImage/下",Toast.LENGTH_LONG).show(); } }catch(Exceptione){ e.printStackTrace(); } } /** *获取SDCard的目录路径功能 *@return */ privateStringgetSDCardPath(){ FilesdcardDir=null; //判断SDCard是否存在 booleansdcardExist=Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED); if(sdcardExist){ sdcardDir=Environment.getExternalStorageDirectory(); } returnsdcardDir.toString(); }
由于要对SDCard进行操作,所以别忘记了在manifest.xml文件中赋以对SDCard的读写权限:
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
希望本文所述对大家学习Android软件编程有所帮助。