- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
android偷录功能实现(退出程序依然录像)
android偷录功能实现(退出程序依然录像)
当然如果要录像那么SurfaceView是少不了的!那么就应该想到WindowManager来绘制桌面小控件的原理了!那么就可以保证这个SurfaceView一直存在了!再把宽高设置为1dp,就可以让用户视觉上有了后台录制的效果了!
一、首先我们需要一个SurfaceView:
?xml version=1.0 encoding=utf-8?
LinearLayout
xmlns:android=/apk/res/android
android:id=@+id/small_window_layout
android:layout_width=1dip
android:layout_height=1dip
android:background=@drawable/bg_small
SurfaceView
android:id=@+id/percent
android:layout_width=fill_parent
android:layout_height=fill_parent
android:gravity=center
android:textColor=#ffffff
/
/LinearLayout
二、然后进行的操作就是生产这个小控件了:
public FloatWindowSmallView(Context context) {
super(context);
windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
LayoutInflater.from(context).inflate(R.layout.float_window_small, this);
View view = findViewById(R.id.small_window_layout);
viewWidth = view.getLayoutParams().width;
viewHeight = view.getLayoutParams().height;
// SurfaceView percentView = (SurfaceView) findViewById(R.id.percent);
// percentView.setText(MyWindowManager.getUsedPercentValue(context));
}
/**
* 将小悬浮窗的参数传入,用于更新小悬浮窗的位置。
*
* @param params 小悬浮窗的参数
*/
public void setParams(WindowManager.LayoutParams params) {
mParams = params;
}
三、那桌面控件有了,下面当然就是使用WindowManager添加到桌面上了:
/**
* 创建一个小悬浮窗。初始位置为屏幕的右部中间位置。
*
* @param context 必须为应用程序的Context.
*/
public void createSmallWindow(Context context) {
mContext = context;
WindowManager windowManager = getWindowManager(context);
int screenWidth = windowManager.getDefaultDisplay().getWidth();
int screenHeight = windowManager.getDefaultDisplay().getHeight();
if (smallWindow == null) {
smallWindow = new FloatWindowSmallView(context);
if (smallWindowParams == null) {
smallWindowParams = new LayoutParams();
文档评论(0)