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" />


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。