其实实现方式很简单,首先我们需要做的就是截取整个屏幕生成一个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);
分享到:
相关推荐
Android实现手机屏幕的自定义区域的截屏,生成图片并且展示,并且保存到SD卡下。
网上找了很多屏幕截图的东西,这里指定截取屏幕一个LinerLayout中的内容。自动截图保存到本地。
android截图 区域截图 部分截图
Android的区域截屏,很好用
对屏幕进行截屏并裁剪有两种方式:早截图和晚截图。早截图,就是先截取全屏,再让用户对截取到的图片进行修改;与之相对的,晚截图,就是先让用户在屏幕上划好区域,再进行截图和裁剪。其实两者并没有什么太大的区别...
Android截屏的原理:获取具体需要截屏的区域的Bitmap,然后绘制在画布上,保存为图片后进行分享或者其它用途 一、Activity截屏 1、截Activity界面(包含空白的状态栏) /** * 根据指定的Activity截图(带空白...
自动化测试实施过程中,由于Android或web部分控件和区域无法通过uiautomator或hierarchy、selenium等系统提供的方式获取相关区域属性,无法通过控件属性访问指定区域,实现操作和断言自动化动作。因此,集成截图查找...
对于不同的屏幕密度、不同的设备方向,不同的语言和区域,都会涉及到备选 drawable 资源,下面这篇文章主要给你大家介绍了关于Android自定义Drawable之在Drawable中部指定透明区域的相关资料,需要的朋友可以参考下
09、共享桌面(可以指定要共享的桌面区域) 10、可靠的P2P 11、网盘 12、离线消息 13、离线文件 14、托盘闪动:跟QQ完全一样,当接收到消息时,托盘会闪动对应好友的头像。点击头像,将弹出与好友的聊天框。 ...
(09)共享桌面(可以指定要共享的桌面区域) (10)可靠的P2P (11)网盘 (12)离线消息 (13)离线文件 (14)托盘闪动:跟QQ完全一样,当接收到消息时,托盘会闪动对应好友的头像。点击头像,将弹出与好友...
09、共享桌面(可以指定要共享的桌面区域) 10、可靠的P2P 11、网盘 12、离线消息 13、离线文件 14、托盘闪动:跟QQ完全一样,当接收到消息时,托盘会闪动对应好友的头像。点击头像,将弹出与好友的聊天框。 ...
-区域截图、页面截图快捷键全搞定; -功能强大,创新性加入各种工具编辑截图; -支持全局快捷键,快速减掉。 安全隐私保护 -安全网址绿色认证; -恶意、钓鱼网站主动拦截; -隐私浏览窗口,历史记录不留痕; ...
获取屏幕截图 snapShotWithStatusBar、snapShotWithoutStatusBar 判断是否锁屏 isScreenLock SD卡相关→SDCardUtils.java 获取设备SD卡是否可用 isSDCardEnable 获取设备SD卡路径 getSDCardPath 完善ing Shell相关...
获得屏幕宽度 获得屏幕高度 ... 获取指定Activity的截屏,保存到png文件 保存bitmap 截取webView快照(webView加载的整个内容的大小) 根据毫秒获得格式化日期 是否存在sd卡 获得文件名 截屏并保存 截屏并保存
功能包括:模拟按键、模拟屏幕触摸、模拟文字输入、获取指定位置屏幕颜色、指定区域查找相似颜色等 原理 手机连接电脑,并开启USB调试模式,使用ADB工具获取屏幕截图,分析并模拟各种操作。(需要自己写代码) 运行...
GGTalk开源即时通讯系统(简称GG)是QQ的高仿版,同时支持局域网和广域网,包括客户端(PC客户端、android移动端)、服务端、数据库。...(09)共享桌面(可以指定要共享的桌面区域) (10)可靠的P2P
-区域截图、页面截图快捷键全搞定; -功能强大,创新性加入各种工具编辑截图; -支持全局快捷键,快速减掉。 安全隐私保护 -安全网址绿色认证; -恶意、钓鱼网站主动拦截; -隐私浏览窗口,历史记录不留痕; ...
09、共享桌面(可以指定要共享的桌面区域) 10、可靠的P2P 11、网盘 12、离线消息 13、离线文件 14、托盘闪动:跟QQ完全一样,当接收到消息时,托盘会闪动对应好友的头像。点击头像,将弹出与好友的聊天框。 ...
在家中某一特定区域,如儿童卧室内,安装WICED Sense套件,当该区域温度上升超过特定温度值时,发出短信警报 在汽车钥匙上安装WICED Sense套件,使用智能手机触发标签上的警报,快速找到车钥匙 在宠物项圈上安装...