Android 截取系统当前屏幕

版权所有,禁止匿名转载;禁止商业使用。
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();    

    }

0 0