andoid系统截屏功能总结
来源:互联网 发布:基金净值算法 编辑:程序博客网 时间:2024/06/06 01:02
在做文件夹背景高斯模糊的过程中遇到的截屏功能问题总结:
android高斯模糊算法都已经很成熟了,目前来说还是github上的FastBlur效率最快。因为是要做实时背景模糊,所以会涉及到截屏的功能。刚开始用的是用下面的代码来实现截屏:
private Bitmap screenshot() { View view = getWindow().getDecorView(); view.setDrawingCacheEnabled(true); view.buildDrawingCache(true); /** * 获取当前窗口快照,相当于截屏 */ Bitmap bmp1 = view.getDrawingCache(); return bmp1;}
但是得到截图后,模糊出来的效果一直不是我想要的效果,模糊出来是这样的:
我用别的图片测试过模糊算法绝对没问题,那么问题一定出在截图上,所以我把截图保存下来,导出查看,才发现用上面那个函数得到的截图只是上层的应用图标的图,并没有把桌面背景也一起截进去,背景是透明的,所以才会导致模糊出来的效果是上面那样的:
后来网查了好久都没找到好的截图实现方法。所以自己到SystemUi下面找系统截图的代码,提取了下,自己实现了截屏功能:
private Bitmap takeScreenshot(Context context) { Display display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); DisplayMetrics displayMetrics = new DisplayMetrics();; display.getRealMetrics(displayMetrics); float[] dims = {displayMetrics.widthPixels, displayMetrics.heightPixels}; // Take the screenshot Bitmap screenBitmap = SurfaceControl.screenshot((int) dims[0], (int) dims[1]); return screenBitmap; }不过,在使用这个函数有两个前提,就是在编译的时候要在Android.mk里的加上:
LOCAL_CERTIFICATE := platform
并且在Androidmanifest.xml里加上权限:
<uses-permission android:name="android.permission.READ_FRAME_BUFFER" />
虽然获得截图的效率低了,但是加上高斯模糊后确实达到了我期望的效果:
0 0
- andoid系统截屏功能总结
- andoid如何修改系统时间
- 2018届校招Andoid开发工程师总结--准备工作
- 2018届校招Andoid开发工程师总结--笔经面经
- Linux桌面发行版与Andoid GUI系统组件对比
- Andoid 7.0调用系统拍照的正确用法
- andoid 6.0权限下调用系统电话call
- 机房收费系统总结之功能解析
- 学生管理系统总结之功能实现
- 能源管理系统功能简单总结
- Android系统截屏功能提取
- Android系统截屏功能提取
- Android系统截屏功能提取
- Android系统截屏功能提取
- Android系统截屏功能提取
- Android系统截屏功能提取
- Andoid 编译
- 展讯android 5.1系统部分功能修改学习总结
- 猜数字游戏
- 李一男荡人心魄的戏剧化人生
- WinDBG命令概览(下) - 扩展命令
- 统计学习笔记(4) 线性回归(1)
- 使用Activity用作弹出式对话框-----对话框不仅仅是Dialog,PopupWindow-----防微信对话框效果
- andoid系统截屏功能总结
- reactJS入门
- Commons之DbUtils
- ListViewAutoScrollHelper
- numpy.ndarray.flat/flatten 与 Spark 下的 flatMap
- 关于抓DUMP的一些链接
- 贪心算法总结
- Matlab 默认配置汇总(不断更新。。。)
- Ajax请求中get与post的区别