android代码截屏截切图片并且保存到指定文件夹中

最近项目中要有代码自动截屏的功能,而且需要截屏之后使用代码剪切一下图片的功能并且上传到服务器端,话不多说先直接上代码,然后再根据代码分析一下呗。
private void GetandSaveCurrentImage() {
		//1.获取屏幕分辨率
		DisplayMetrics dm = new DisplayMetrics();
		getWindowManager().getDefaultDisplay().getMetrics(dm);
		int widthPixels = dm.widthPixels;
		int heightPixels = dm.heightPixels;
		float density = dm.density;
		System.out.println("======widthPixels========" + widthPixels);
		System.out.println("======heightPixels========" + heightPixels);
		System.out.println("======density========" + density);
		int w = (int) (widthPixels * density);
		int h = (int) (heightPixels * density);
		System.out.println("======w========" + w);
		System.out.println("======h========" + h);
		Bitmap bmp = Bitmap.createBitmap(w, h, Config.ARGB_8888);
		int toppx = (int) (65 * density);
		System.out.println("====toppx=========" + toppx);
		int bottonpx = (int) (60 * density);
		System.out.println("=====bottonpx========" + bottonpx);
		// 2.获取屏幕
		View decorview = getWindow().getDecorView();
		decorview.setDrawingCacheEnabled(true);
		bmp = decorview.getDrawingCache();
		int width = bmp.getWidth();
		int height = bmp.getHeight();
		System.out.println("======width=======" + width);
		System.out.println("========height====" + height);
		Bitmap btp = Bitmap.createBitmap(bmp, 0, toppx, widthPixels,
				heightPixels - toppx - bottonpx);
		String SavePath = "sdcard/test/";
		// 3.保存Bitmap
		try {
			File path = new File(SavePath);
			// 文件
			String filepath = SavePath + "/screen.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) {
				btp.compress(Bitmap.CompressFormat.PNG, 90, fos);
				fos.flush();
				fos.close();
			}

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

第一步:需要获取到手机屏幕的分辨率,以供截屏之后截取图片时使用;

第二步:当然就是使用代码进行手机截屏,代码如下:

<span style="white-space:pre">		</span>View decorview = getWindow().getDecorView();
		decorview.setDrawingCacheEnabled(true);
		bmp = decorview.getDrawingCache();
第三步:将截取好的图片保存到sdcard中指定文件夹中,以供上传到服务器(上传图片的功能在这就不写了)。

以下是效果图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值