一、原理 当达到某一条件时超过一段时间时,弹出popwindow,大小为全屏,当条件不满足或者用户点击时,让popwindow消失。 二、屏保
当达到某一条件时超过一段时间时,弹出popwindow,大小为全屏,当条件不满足或者用户点击时,让popwindow消失。
二、屏保界面实现上图中的转圈动画是转圈的,使用的是这位大佬的,详情使用,可以看看https://www.jianshu.com/p/4732d8ae61fe
新建layout文件,如下
三、逻辑实现
定义一个全局变量判断是否正在显示屏保
private boolean isshowScreenProtectPopWindow = false;
逻辑判断
if (不满足出现屏保的条件) {
start = System.currentTimeMillis();
if (isShowScreenProtectPopWindow) {
screenPrtectPopwindow.dismiss();
}
isShowScreenProtectPopWindow = false;
} else {
long end = System.currentTimeMillis();
//如果满足条件超过5s
if (end - start > 5000 && !isShowScreenProtectPopWindow) {
showScreenProtectPopWindow();
}
}
}
弹窗方法
public void showScreenProtectPopWindow() {
View view = getLayoutInflater().inflate(R.layout.screen_protect, null);
DisplayMetrics dm = getResources().getDisplayMetrics();
int w_screen = dm.widthPixels;
int h_screen = dm.heightPixels;
screenPrtectPopwindow = new PopupWindow(view, w_screen, h_screen, true);
screenPrtectPopwindow.setFocusable(false);
//获得屏保界面,设置点击监听
LinearLayout linearLayout = view.findViewById(R.id.popwindow_linear_id);
linearLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
screenPrtectPopwindow.dismiss();
isShowScreenProtectPopWindow = false;
start = System.currentTimeMillis();
}
});
screenPrtectPopwindow.showAtLocation(view, Gravity.BOTTOM, 0, 0);
isShowScreenProtectPopWindow = true;
}
--结束END--
本文标题: Android 屏保实现
本文链接: https://lsjlt.com/news/28962.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-01-21
2023-10-28
2023-10-28
2023-10-27
2023-10-27
2023-10-27
2023-10-27
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0