• 屏幕截取功能的实现


    下面的方法直接在Activity中调用即可:

    /**
    * 获取和保存当前屏幕的截图
    */
    private void GetandSaveCurrentImage()  
    {  
    //构建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 );      
    //获取屏幕  
    View decorview = this.getWindow().getDecorView();   
    decorview.setDrawingCacheEnabled(true);   
    Bmp = decorview.getDrawingCache();   
    //图片存储路径
    String SavePath = getSDCardPath()+"/Demo/ScreenImages";
    //保存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/Demo/ScreenImages/目录下",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();
    }


  • 相关阅读:
    第二章作业第2题--苏志华
    小学生四则运算应用软件(一)
    YOLO1至YOLOV3方法讲解
    C++ STL中的二分查找
    C++ 中的prioriy_queue 优先级队列 转
    C++ 中的容器(栈、堆、队列) 转
    从尾到头打印链表
    替换空格
    C++中vector<vector<int> >
    对称平方数
  • 原文地址:https://www.cnblogs.com/sowhat4999/p/4439833.html
Copyright © 2020-2023  润新知