【Android应用开发】-(13)截屏效能(附源码)

【Android应用开发】-(13)截屏功能(附源码)

    由于要做说明书,或者给客户看效果图,不得不通过截图的方式把屏幕接下来(当然了,还可以通过拍照来达到目的)。于是就Google,于是找到一些需要Root权限,和不需要Root权限的截图应用,于是试了一把。多数不可用。于是就想自己开发一个截图的应用。在View 中提供一个getDrawingCache的方法,可以通过次方法获取View的截屏,但仅仅是截取View的。如果要截取状态栏呢?

    其实不然,在ICS中的SystemUI就实现了截图的功能,按组合键Power+Volume Add/Volume sub就能截取图片。代码目录:
frameworks/base/packages/SystemUI/src/com/android/systemui/screenshot/在此目录下就两个文件,主要的截图方法在GlobalScreenshot中,本文就通过移植SystemUI中截图的代码实现截图功能。

    首先是直接移植SystemUI的代码,实现截图效果,这部分的代码就不贴出来了,直接去下载代码吧, 关键的代码没有几句,最最主要的是:Surface.screenshot(),请看代码吧。

PS:1、需要在AndroidManifest.xml中加入代码:android:sharedUserId="android.uid.system"

         2、由于调用了@hide的API,所以编译得时候请使用makefile编译。或者通过在Eclipse中添加Jar文件通过编译。

         3、此代码只在Android4.0中使用过,2.3的就没去做测试了。

原创文章转载请注明出处:http://www.blog.csdn.net/tangcheng_ok