其实实现方式很简单,首先我们需要做的就是截取整个屏幕生成一个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平台上,实现指定区域截屏是一项常见的需求,尤其对于开发者来说,可能需要对特定的UI元素进行截图测试或者创建自定义的分享功能。本文将详细介绍如何在Android中实现这一功能,包括理解屏幕截图的基本原理...
在Android平台上,实现区域截屏和录屏功能是开发者经常遇到的需求,这通常涉及到系统级权限的使用。本文将深入探讨如何在Android中构建这样的DEMO应用,包括关键的API介绍、实现步骤以及可能遇到的问题。 首先,...
在本文中,我们将深入探讨如何在Android中实现这一功能,包括如何选取特定布局,进行截图,并将截图保存至本地。 首先,我们需要了解Android中的截图原理。在Android系统中,我们可以获取到设备的root窗口...
在Android系统中,区域截屏是一项非常实用的功能,它允许...综上所述,Android区域截屏是通过捕获屏幕快照、创建浮动窗口和裁剪截图等一系列步骤实现的。无论是用户还是开发者,都能从中受益,提高截图的效率和实用性。
在Android平台上,自定义区域截图是一项实用且常见的功能,它允许用户自由选择屏幕上的特定区域进行截图,而非全屏截图。实现这一功能涉及到对Android系统的理解、View的层级结构以及图像处理技术。以下是对该主题的...
android截图 区域截图 部分截图
在Android开发中,有时我们需要实现一个功能,即截取应用程序屏幕的特定区域并将其保存到用户的相册。这个过程涉及到多个技术点,包括权限管理、屏幕截图、图像处理以及存储操作。下面将详细讲解这些关键知识点。 1...
在Android开发中,有时我们需要对屏幕的特定区域进行截图,而不是整个屏幕,这在比如用户头像选择、游戏截图分享等功能中非常常见。这个“android区域性屏幕截图”项目提供了解决此类需求的代码实现,已经经过测试并...
在Android平台上,实现区域截图是一项常见的需求,尤其对于开发者来说,了解如何进行这一操作是非常重要的。这个"Android区域截图源码"提供了一种方法来实现这个功能,让我们深入探讨一下这个话题。 首先,Android...
在Android开发中,有时我们需要实现一个功能,即从屏幕或者某个图像中截取特定的区域并显示出来。这个示例正是这样一个功能的实现,它允许用户通过触摸屏幕上的某一点来截取以该点为左上角的一个正方形区域,并将...
对屏幕进行截屏并裁剪有两种方式:早截图和晚截图。早截图,就是先截取全屏,再让用户对截取到的图片进行修改;与之相对的,晚截图,就是先让用户在屏幕上划好区域,再进行截图和裁剪。其实两者并没有什么太大的区别...
在Android平台上,实现区域截图是一项常见的需求,例如用户可能希望保存屏幕上的某个特定部分,或者开发者需要进行自动化测试。这个名为"Android 区域截图源码.zip"的压缩包提供了实现这一功能的源代码,我们可以从...
这个"Android源码——区域截图源码.zip"压缩包很可能包含了一个实现Android设备上区域截图功能的源代码示例。 在Android平台上实现区域截图,通常涉及到以下几个关键知识点: 1. **权限获取**:在Android 6.0(API...
图片可能显示了用户如何选择屏幕上的特定区域并进行截图,以及截图后的展示方式。 核心部分是"Android 区域截图源码",这应该是一个Android Studio项目,包含以下几个关键组件: 1. **Activity**:作为主入口,它...
在Android平台上进行应用程序开发时,有时我们需要实现特定区域的截图功能。这个"Android程序研发源码Android 区域截图源码.zip"文件提供了一个实现这一功能的源代码示例。以下将详细介绍区域截图的核心概念、实现...
在本项目中,我们将探讨如何使用OpenCV库与Android Studio结合,通过SDK方式实现在Android设备上进行实时人脸检测,并自动截取包含人脸区域的图片保存。OpenCV是一个强大的计算机视觉库,支持多种编程语言,包括Java...