本文来源:http://myhpu2008.iteye.com/blog/999779
<wbr style="color:rgb(51,51,51); font-family:Arial,Helvetica,simsun,u5b8bu4f53; font-size:14px; line-height:25px"><span style="color:rgb(51,51,51); font-family:Arial,Helvetica,simsun,u5b8bu4f53; font-size:14px; line-height:25px"></span></wbr>
这种方法应该只能对当前Activity本身进行截屏,因而你只能在你应用程序中参照该代码对其应用程序本身截屏。
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Rect;
import android.util.Log;
import android.view.View;
public class ScreenShot {
// 获取指定Activity的截屏,保存到png文件
private static Bitmap takeScreenShot(Activity activity) {
// View是你需要截图的View
View view = activity.getWindow().getDecorView();
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap b1 = view.getDrawingCache();
// 获取状态栏高度
Rect frame = new Rect();
activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
int statusBarHeight = frame.top;
Log.i("TAG", "" + statusBarHeight);
// 获取屏幕长和高
int width = activity.getWindowManager().getDefaultDisplay().getWidth();
int height = activity.getWindowManager().getDefaultDisplay()
.getHeight();
// 去掉标题栏
// Bitmap b = Bitmap.createBitmap(b1, 0, 25, 320, 455);
Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height
- statusBarHeight);
view.destroyDrawingCache();
return b;
}
// 保存到sdcard
private static void savePic(Bitmap b, String strFileName) {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(strFileName);
if (null != fos) {
b.compress(Bitmap.CompressFormat.PNG, 90, fos);
fos.flush();
fos.close();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
// 程序入口
public static void shoot(Activity a) {
ScreenShot.savePic(ScreenShot.takeScreenShot(a), "sdcard/xx.png");
}
}
注意:shoot方法只能在view已经被加载后方可调用。
分享到:
相关推荐
Android 2.3中的截屏功能可以通过JNI(Java Native Interface)来实现,这是一种在Java程序中调用本地(C/C++)代码的技术。JNI允许开发者利用Java的跨平台特性,同时利用C/C++的强大性能和低级别操作能力。在这个场景下...
非常优雅的方案实现屏幕截图,利用android 5.0 之后的录屏API获取一帧画面,来实现截屏。 特性 方便后台service调用截屏功能。 打破老旧的截屏方案,只能截当前activity不能截状态栏的问题。 使用 直接编译...
Android 游戏源代码 Petraszd(含截图)Android 游戏源代码 Petraszd(含截图)Android 游戏源代码 Petraszd(含截图)Android 游戏源代码 Petraszd(含截图)Android 游戏源代码 Petraszd(含截图)Android 游戏源...
总的来说,这个"android禁止截屏和开启截屏demo源码"是一个非常实用的学习资源,可以帮助开发者理解并实现Android应用中对截图功能的控制。通过研究和理解源码,我们可以更好地应对各种场景下的截图需求,并提升应用...
在给定的“Android代码实现截屏”主题中,我们将深入探讨如何通过编程方式来完成这一任务,特别是在Android应用中截取当前Activity的屏幕图像。 首先,我们要明白Android系统的层次结构。Android应用程序由多个组件...
这个“Android代码-Android截图圆形Canvas.rar”压缩包可能包含了一个实现这种功能的示例项目。下面我们将详细探讨如何在Android中实现圆形截图的功能。 首先,Android中的截图通常通过`View`类的`draw()`方法或者`...
以上就是Android代码截屏的三种主要方法。需要注意的是,使用Activity和系统API的方式可能受到权限限制,而adb指令则需要设备连接到电脑并且开启USB调试。在实际应用中,根据需求和安全考虑选择合适的方法。同时,...
本文将详细介绍如何在Android中实现`SurfaceView`的截屏功能。 首先,了解`SurfaceView`的基本原理。`SurfaceView`创建了一个独立的窗口,并在自己的Surface上绘制内容。这使得它可以在后台线程进行高效的绘制,但...
Android 游戏源代码 PixelTowers(含截图)Android 游戏源代码 PixelTowers(含截图)Android 游戏源代码 PixelTowers(含截图)Android 游戏源代码 PixelTowers(含截图)Android 游戏源代码 PixelTowers(含截图)...
这个名为"android截屏工程代码"的项目提供了一个API18级别的解决方案,这意味着它适用于Android 4.3(Jelly Bean)及更高版本的设备。编码方式采用GBK,这在处理中文字符时是必要的,尤其是在老版本的Android系统中...
Android 游戏源代码 DuckGame(含截图)Android 游戏源代码 DuckGame(含截图)Android 游戏源代码 DuckGame(含截图)Android 游戏源代码 DuckGame(含截图)Android 游戏源代码 DuckGame(含截图)Android 游戏源...
3. **区域截屏逻辑**:这部分代码可能会使用JNI与C/C++库交互,调用SurfaceFlinger的接口来获取指定区域的屏幕截图。 4. **用户界面**:应用需要提供用户界面,让用户选择截屏或录屏功能,并可能包含选择截取区域的...
对于本项目,它可能详细解释了如何编译和运行代码,以及如何在Android设备上测试屏幕截图功能。 7. **screenshots的处理**:在获取到屏幕缓冲区数据后,开发者需要将其转换成图片文件,这通常涉及图像编码(如JPEG...
在Android开发中,截屏功能是一项常见的需求,无论是为了调试应用、分享屏幕内容还是构建功能如录屏。本文将深入探讨如何使用`drawingcache`方法实现Android应用的截图功能。 首先,我们需要理解`drawingcache`的...
在Android系统中,截屏是用户日常操作的一部分,主要用于记录屏幕内容或分享给他人。而无需root权限的截图方式更是受到广泛欢迎,因为root设备可能会带来安全风险。本主题主要探讨如何通过C++来实现这一功能,并解析...
通过阅读和分析这些代码,你可以更深入地了解Android系统截屏的实现原理,并可以在自己的应用中集成这一功能。 总结起来,Android系统截屏涉及到的关键点包括权限管理、屏幕参数获取、Bitmap创建、视图绘制以及文件...
Android 游戏源代码 Particly(含截图)Android 游戏源代码 Particly(含截图)Android 游戏源代码 Particly(含截图)Android 游戏源代码 Particly(含截图)Android 游戏源代码 Particly(含截图)Android 游戏源...
Android 游戏源代码 Jewels(含截图)Android 游戏源代码 Jewels(含截图)Android 游戏源代码 Jewels(含截图)Android 游戏源代码 Jewels(含截图)Android 游戏源代码 Jewels(含截图)Android 游戏源代码 Jewels...
Android 游戏源代码 Emptyyourmind(含截图)Android 游戏源代码 Emptyyourmind(含截图)Android 游戏源代码 Emptyyourmind(含截图)Android 游戏源代码 Emptyyourmind(含截图)Android 游戏源代码 Emptyyourmind...
Android 游戏源代码 BlockBreaker(含截图)Android 游戏源代码 BlockBreaker(含截图)Android 游戏源代码 BlockBreaker(含截图)Android 游戏源代码 BlockBreaker(含截图)Android 游戏源代码 BlockBreaker(含...