谈我在实现屏幕截图上学到的知识

我是一个初学者,在刚接触屏幕截图这个需求时,我是惯性地百度了一下,果不其然,相关的资料汗牛充栋。在这里,我向读者提供一个链接,是关于androi屏幕截图的相关资料的。http://blog.csdn.net/woshinia/article/details/11520403。在初略的研读玩这篇博客后,习惯性地进行实践操作,但结果却没有一例能够满足相关需求的。自然抱怨是少不了的。就比如开案例一:利用activity的绘画缓存获取屏幕图像,很遗憾,该办法既不能截获通知栏的图像,更只能局限在本应用的activity上。于是,我又转向模拟物理按键调用系统截图事件去进行截图。可惜弄了很久还是没办法模拟长按电源键事件。至于在其他的方法,我也一一尝试,最终都没办法实现,里面的案例总是缺胳膊缺腿的。

后来在一位前辈的指导下,我得到了这样一种截屏的方法,调用系统命令进行截图

Process sh = Runtime.getRuntime().exec("su", null,null); OutputStream os = sh.getOutputStream(); os.write(("/system/bin/screencap p " + "/sdcard/img.png").getBytes("ASCII")); os.flush(); os.close(); sh.waitFor();

截图是能够截图了,但问题又来了,截出来的图显示一段Toast,提示语。这不是大煞风景吗?由于获取root权限紧接着就是截图了,看来这种情况我可避免了。但问题总是要解决的。后来我灵光一动,想,能不能我在启动截屏事件之前调用获取root'权限呢。如果这样的话,可以等到提示语消失后再进行截图操作了。一试,果然灵。有时候我觉得,编写程序的过程就像解方程的解一样。如果要引用我们为所见闻的方式去解决问题的去很困难,但如果恰当使用各个数间的关系,就可以惊人的效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值