Android中截取當前屏幕的功能

該篇文章是說明在Android手機或平板電腦中如何實現截取當前屏幕的功能,並把截取的屏幕保存到SDCard中的某個目錄文件夾下面。實現的代碼如下:
[html]
/** 
 * 獲取和保存當前屏幕的截圖 
 */ 
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的讀寫權限:
[html]
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

摘自 Android-Idea

發佈留言