`
AndroidLL
  • 浏览: 73883 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android实现指定区域截屏的实现

阅读更多

其实实现方式很简单,首先我们需要做的就是截取整个屏幕生成一个bitmap对象

View view = activity.getWindow().getDecorView();
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
bitmap = view.getDrawingCache();

 然后我们需呀计算出我们选定区域的坐标点,注意正选和反选的计算方式不同 ,

public boolean onTouch(View v, MotionEvent event) {
     if(event.getAction() == MotionEvent.ACTION_DOWN){
			x = 0;
			y = 0;
			width = 0;
			height = 0;
			x = (int) event.getX();
			y = (int) event.getY();
		}
      if(event.getAction() == MotionEvent.ACTION_MOVE){
			m = (int) event.getX();
			n = (int) event.getY();
			myView.setSeat(x, y, m, n);
			myView.postInvalidate();
		}
      if(event.getAction() == MotionEvent.ACTION_UP){
	if(event.getX()>x){
	     width = (int)event.getX()-x;
	}else{
	     width = (int)(x-event.getX());
	      x = (int) event.getX();
	}
                 if(event.getY()>y){
	     height = (int) event.getY()-y;
	 }else{
	     height = (int)(y-event.getY());
	      y = (int) event.getY();
	}
	image2.setImageBitmap(getBitmap(this));
		}
	if(myView.isSign()){
	     return false;
	}else{
	      return true;
	}
}

 

然后为我们计算出来的坐标区域添加选中效果

 

protected void onDraw(Canvas canvas) {
         if(sign){
	paint.setColor(Color.TRANSPARENT);
         }else{
	paint.setColor(Color.RED);
	paint.setAlpha(80);
	canvas.drawRect(new Rect(x, y, m, n), paint);
           }
	super.onDraw(canvas);
}

 

最后生成我们需要的图片展示出来,顺便保存到SD卡下一张。

Rect frame = new Rect();
      activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
      int toHeight = frame.top;
      bitmap = Bitmap.createBitmap(bitmap, x, y+2*toHeight, width, height);
      try {
	FileOutputStream fout = new FileOutputStream("mnt/sdcard/test.png");
	bitmap.compress(Bitmap.CompressFormat.PNG, 100, fout);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		view.setDrawingCacheEnabled(false);

 

分享到:
评论
5 楼 java小编 2014-10-29  
http://www.pm-road.com/index.php/2014/10/29/140/ 
4 楼 ayu0624 2013-08-23  
这个好用。。。。。。。。。
3 楼 hualikejava 2013-04-14  
还可以,截图比较使用
2 楼 lovestevevai 2012-11-15  
多谢分享~~
1 楼 chun_defeng 2012-08-14  
谢谢分享,太好用了!!

相关推荐

    Android实现指定区域截屏

    Android实现手机屏幕的自定义区域的截屏,生成图片并且展示,并且保存到SD卡下。

    android 指定屏幕内区域截图

    网上找了很多屏幕截图的东西,这里指定截取屏幕一个LinerLayout中的内容。自动截图保存到本地。

    android截图 区域截图 部分截图

    android截图 区域截图 部分截图

    Android区域截屏

    Android的区域截屏,很好用

    Android实现矩形区域截屏的方法

    对屏幕进行截屏并裁剪有两种方式:早截图和晚截图。早截图,就是先截取全屏,再让用户对截取到的图片进行修改;与之相对的,晚截图,就是先让用户在屏幕上划好区域,再进行截图和裁剪。其实两者并没有什么太大的区别...

    Android截屏截图的几种方法总结

     Android截屏的原理:获取具体需要截屏的区域的Bitmap,然后绘制在画布上,保存为图片后进行分享或者其它用途 一、Activity截屏 1、截Activity界面(包含空白的状态栏) /** * 根据指定的Activity截图(带空白...

    Python的图像识别方式源码

    自动化测试实施过程中,由于Android或web部分控件和区域无法通过uiautomator或hierarchy、selenium等系统提供的方式获取相关区域属性,无法通过控件属性访问指定区域,实现操作和断言自动化动作。因此,集成截图查找...

    Android自定义Drawable之在Drawable中部指定透明区域方法示例

    对于不同的屏幕密度、不同的设备方向,不同的语言和区域,都会涉及到备选 drawable 资源,下面这篇文章主要给你大家介绍了关于Android自定义Drawable之在Drawable中部指定透明区域的相关资料,需要的朋友可以参考下

    即时通信系统GGTalk(支持PC和Android,高仿QQ)源码 GGRealTimeGGTalk.rar

    09、共享桌面(可以指定要共享的桌面区域) 10、可靠的P2P 11、网盘 12、离线消息 13、离线文件 14、托盘闪动:跟QQ完全一样,当接收到消息时,托盘会闪动对应好友的头像。点击头像,将弹出与好友的聊天框。 ...

    GG即时通讯系统_GGTalk v7.0完整版_新增Xamarin移动端_视频聊天

    (09)共享桌面(可以指定要共享的桌面区域) (10)可靠的P2P (11)网盘 (12)离线消息 (13)离线文件 (14)托盘闪动:跟QQ完全一样,当接收到消息时,托盘会闪动对应好友的头像。点击头像,将弹出与好友...

    即时通信系统GGTalk(支持PC和Android,高仿QQ)源码 GGRealTimeCommunication.rar

    09、共享桌面(可以指定要共享的桌面区域) 10、可靠的P2P 11、网盘 12、离线消息 13、离线文件 14、托盘闪动:跟QQ完全一样,当接收到消息时,托盘会闪动对应好友的头像。点击头像,将弹出与好友的聊天框。 ...

    傲游云浏览器(Maxthon) v5.2.7.5000.zip

    -区域截图、页面截图快捷键全搞定; -功能强大,创新性加入各种工具编辑截图; -支持全局快捷键,快速减掉。 安全隐私保护 -安全网址绿色认证; -恶意、钓鱼网站主动拦截; -隐私浏览窗口,历史记录不留痕; ...

    Android开发人员不得不收集的代码

    获取屏幕截图 snapShotWithStatusBar、snapShotWithoutStatusBar 判断是否锁屏 isScreenLock SD卡相关→SDCardUtils.java 获取设备SD卡是否可用 isSDCardEnable 获取设备SD卡路径 getSDCardPath 完善ing Shell相关...

    java_关Android屏幕的工具类的标准代码

    获得屏幕宽度 获得屏幕高度 ... 获取指定Activity的截屏,保存到png文件 保存bitmap 截取webView快照(webView加载的整个内容的大小) 根据毫秒获得格式化日期 是否存在sd卡 获得文件名 截屏并保存 截屏并保存

    PyMacro:Python版模拟手机按键精灵库,可以用它在你的手机上模拟各种操作,且无需ROOT你的手机

    功能包括:模拟按键、模拟屏幕触摸、模拟文字输入、获取指定位置屏幕颜色、指定区域查找相似颜色等 原理 手机连接电脑,并开启USB调试模式,使用ADB工具获取屏幕截图,分析并模拟各种操作。(需要自己写代码) 运行...

    仿qq通讯应用程序.zip

    GGTalk开源即时通讯系统(简称GG)是QQ的高仿版,同时支持局域网和广域网,包括客户端(PC客户端、android移动端)、服务端、数据库。...(09)共享桌面(可以指定要共享的桌面区域) (10)可靠的P2P

    傲游浏览器 v5.3.8.1100 Beta.zip

    -区域截图、页面截图快捷键全搞定; -功能强大,创新性加入各种工具编辑截图; -支持全局快捷键,快速减掉。 安全隐私保护 -安全网址绿色认证; -恶意、钓鱼网站主动拦截; -隐私浏览窗口,历史记录不留痕; ...

    GGTalk即时通信系统 GGRealTimeCommunicationGGTalk5.rar

    09、共享桌面(可以指定要共享的桌面区域) 10、可靠的P2P 11、网盘 12、离线消息 13、离线文件 14、托盘闪动:跟QQ完全一样,当接收到消息时,托盘会闪动对应好友的头像。点击头像,将弹出与好友的聊天框。 ...

    WICED Sense1蓝牙智能传感器原理图+PCB源文件+BOM清单-电路方案

    在家中某一特定区域,如儿童卧室内,安装WICED Sense套件,当该区域温度上升超过特定温度值时,发出短信警报 在汽车钥匙上安装WICED Sense套件,使用智能手机触发标签上的警报,快速找到车钥匙 在宠物项圈上安装...

Global site tag (gtag.js) - Google Analytics