标签:
方式一、调用 GetandSaveCurrentImage()方法即可
/** * 获取和保存当前屏幕的截图 */ 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() + "/test/ScreenImages"; // 保存Bitmap Log.d("debug","SavePath = "+SavePath); try { File path = new File(SavePath); // 文件 String filepath = SavePath + "/Screen_1.png"; Log.d("debug","filepath = "+filepath); File file = new File(filepath); if (!path.exists()) { Log.d("debug","path is not exists"); path.mkdirs(); } if (!file.exists()) { Log.d("debug","file create new "); 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/ScreenImages/目录下", Toast.LENGTH_LONG).show(); Log.d("debug","save ok"); } } 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(); }方式二、调用方法ScreenShot
private void ScreenShot(View v){ SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd_HH-mm-ss", Locale.US); String fname = "/sdcard/" + sdf.format(new Date()) + ".png"; Log.d("debug", "fname = " + fname); View view = v.getRootView(); view.setDrawingCacheEnabled(true); view.buildDrawingCache(); Bitmap bitmap = view.getDrawingCache(); if (bitmap != null) { FileOutputStream out = null; try { out = new FileOutputStream(fname); Log.d("debug", "FileOutputStream "); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); Log.d("debug", "bitmap is error"); } bitmap.compress(Bitmap.CompressFormat.PNG, 100, out); Log.d("debug", "bitmap compress ok"); } else { Log.d("debug", "bitmap is null"); } }记得加上权限的设置
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
标签:
原文地址:http://blog.csdn.net/loveheronly/article/details/44827905