首页 > 系统 > Android > 正文

Android实现截屏并保存操作功能

2020-04-11 11:08:45
字体:
来源:转载
供稿:网友

该篇文章是说明在Android手机或平板电脑中如何实现截取当前屏幕的功能,并把截取的屏幕保存到SDCard中的某个目录文件夹下面。
实现的代码如下:

/**  * 获取和保存当前屏幕的截图  */ 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();     String SavePath = getSDCardPath()+"/AndyDemo/ScreenImage";   //3.保存Bitmap   try {   File path = new File(SavePath);   //文件   String filepath = SavePath + "/Screen_1.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(mContext, "截屏文件已保存至SDCard/AndyDemo/ScreenImage/下", Toast.LENGTH_LONG).show();   }   } catch (Exception e) {   e.printStackTrace();  } }   /**  * 获取SDCard的目录路径功能  * @return  */ 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(); } 

由于要对SDCard进行操作,所以别忘记了在manifest.xml文件中赋以对SDCard的读写权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

希望本文所述对大家学习Android软件编程有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表