当前位置: 代码迷 >> Android >> android -手机截屏
  详细解决方案

android -手机截屏

热度:40   发布时间:2016-04-28 01:43:52.0
android --手机截屏

方式一、调用 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" />


  相关解决方案