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软件编程有所帮助。