(转)定制个性化屏保

news/2024/4/17 11:40:46

转自:http://blog.csdn.net/wukunting/archive/2010/01/24/5251302.aspx

 

每次我们锁键盘的时候,都看到如下页面:


       看多了就产生审美疲劳, 手机是追求个性化的消费品,想到就是替换她,再找一个。

       如何替换呢?Android 提供如下函数:

KeyguardManager mKeyguardManager = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);

    KeyguardLock mKeyguardLock = mKeyguardManager.newKeyguardLock("");

    mKeyguardLock.disableKeyguard();

    拿到键盘守护锁,屏蔽她既可。接下来就是在合适的时机替代她, 这个合适的时机就是接收Intent.ACTION_SCREEN_OFF.

   IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF);

registerReceiver(mReceiver, filter);

   这里有点奇怪的是,如果通过android.manifest 配置receiver的话,就得不到Action_screen_off 事件,我现在还纳闷了……

 

   最后就是再找一个她(个性化屏保)了, 我目前在模仿Hero屏保,所以就以她来说了。

首先用一个服务启动一个Activity.

如下:

           Intent it = new Intent();

       it.setClass(this, ScreenShow.class);

       it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

       this.startActivity(it);

还要设置该Activity为单态,并且为透明, 属性如下:

android:launchMode="singleTask" android:theme="@style/Theme.nd_Dialog" 其中透明Activity的Style设置为

 

<style name="Theme.nd_Dialog" parent="android:style/Theme.Translucent">

       <item name="android:windowNoTitle">true</item>

</style>

 

我们体验过Hero屏保界面,就会发现,屏保的移动与手势的用力大小相关。用力重的时候,屏保界面自动往下滑。

VelocityTracker mVelocityTracker;

if (mVelocityTracker == null) {

           mVelocityTracker = VelocityTracker.obtain();

}

 

mVelocityTracker.addMovement(event);

mVelocityTracker.computeCurrentVelocity(1000);

float yVel = mVelocityTracker.getYVelocity();

其中屏保自动往下滑的动作不是用Animation来做的,而是通过Handler, 隔一段时间发送一个消息达到动画的效果:

mHandler.sendMessageAtTime(mHandler.obtainMessage(MSG_ANIMATE),

             mCurAnimationTime);

比起Animation, 通过Handle可以达到自如地控制动画.

 

最后,讲讲屏保内容用到Receiver,

// 时间Receiver

intentFilter.addAction(Intent.ACTION_TIME_CHANGED);

    intentFilter.addAction(Intent.ACTION_TIME_TICK);

    intentFilter.addAction(Intent.ACTION_TIMEZONE_CHANGED);

 

    // 配置变化, 关闭系统,

    intentFilter.addAction(Intent.ACTION_CONFIGURATION_CHANGED);

    intentFilter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);

       

//网络名称Receiver(比如中国移动等)  intentFilter.addAction(Telephony.Intents.SPN_STRINGS_UPDATED_ACTION);

 

    // 电量改变Receiver

    intentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);

 

// Sim状态Receiver intentFilter.addAction(TelephonyIntents.ACTION_SIM_STATE_CHANGED;

 

哈……  慕然回首,那人却在灯火阑珊处……


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wukunting/archive/2010/01/24/5251302.aspx


http://www.ppmy.cn/news/742692.html

相关文章

Qt实战中出现的问题

Qt使用StyleSheet美化QListView或QListWidget - 简书 (jianshu.com) QSS实践汇总&#xff08;1&#xff09;——QScrollBar样式、滚动条样式&#xff08;风格&#xff09;_qscrollbar qss_玲玲儿ANLY的博客-CSDN博客 QListWidget自定义item&#xff08;包括widget&#xff09;…

通俗易懂的知识蒸馏 Knowledge Distillation(下)——代码实践(附详细注释)

第一步&#xff1a;导入所需要的包 import math import torch import torch.nn as nn import torch.nn.functional as F from torchvision import datasets, transforms import torch.utils.datatorch.manual_seed(0) # 为CPU设置种子 torch.cuda.manual_seed(0) # 为GPU设置…

Ubuntu 20.04.3 部署NAS于蜗牛星际C

Ubuntu 20.04.3 LTS 部署NAS 1.硬件配置2.Ubuntu 20.04.3 镜像下载3.更新国内镜像源&#xff08;清华、中科大、阿里、网易&#xff09;4.安装系列软件4.1 ssh远程登陆软件4.2 安装vim软件4.3 安装Samba4.4 xrdp远程桌面安装 5.设置防火墙6. 永久挂载硬盘永久挂载硬盘的方法&am…

GWIN入门-完整一个程序

GWIN入门-完整一个程序 新建工程 右击工程名,添加.v文件 编写功能文件 /* timescale是Verilog HDL 中的一种时间尺度预编译指令,它用来定义模块的仿真时的时间单位和时间精度。 */`timescale 1ns/1ps module LED(input wire clk

WeNet的Runtime编译与应用

一、下载visual studio 下载&#xff1a;百度输入 visual studio 官网&#xff0c;下载 visual studio并安装&#xff0c;安装完要配置环境变量&#xff0c;即把cmake路径配置进去 环境配置&#xff1a;将C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\ID…

手机图片怎么做成笔记 手机照片笔记怎么制作

1&#xff1a;选择需要增添内容的笔记分类&#xff0c;长按底部的。 2&#xff1a;点击图片图标&#xff0c;选择本地相册或者相机拍照&#xff0c;我以选择本地图片为例。 3&#xff1a;一次支持选择最多100张图片&#xff0c;选择好后点击右上角确定。 4&#xff1a;等图片全…

手机微信图片存储路径

https://jingyan.baidu.com/article/39810a234a7f2ab636fda6cd.html 计算机\Note3- \Phone\tencent\MicroMsg\WeiXin

用手机怎么把图片转换成PDF

在手机上怎样实现图片生成PDF呢&#xff1f;告诉你&#xff0c;我使用的这款叫做&#xff1a;迅捷PDF阅读器&#xff0c;简单方便又实用&#xff0c;下面就是图片转PDF的操作步骤。 1&#xff1a;先在手机的应用市场下载安装所需要的软件。 2&#xff1a;运行软件&#xff0c…

Android 手机相册图片选择

转载请注明本文出自Jiaxu的专栏&#xff08;http://blog.csdn.net/u011510784/article/details/48550037&#xff09;&#xff0c;谢谢&#xff01; 项目开发中经常遇到选择照片或者拍照并上传到服务器上的情况,本文主要介绍手机中图片的选择及显示,废话不多,有图有真相: 为提…

Android 删除手机相册中的图片

如果拍摄了一些照片&#xff0c;然后以邮件的形式发送出去或者已经使用过了&#xff0c;不想在保留在自己的手机里了。那就使用下面的代码 成功删除这些照片吧~ /**** param context* param file*/public static void deletePictures(Context context,File file){Intent intent…

手机怎么将图片转换成word文档

每次想要把图片转换成Word文档&#xff0c;都要打开电脑&#xff1f;nonono&#xff0c;最近发现一个好方法&#xff0c;手机就能将图片转换成Word文档&#xff0c;简单方法&#xff0c;几秒搞定。 1.打开手机应用市场&#xff0c;在搜索栏输入“超能文字识别”&#xff0c;找到…

Android 保存图片到手机相册

有一种很常见的需求&#xff0c;当保存图片的时候&#xff0c;客户需要在相册里面看到那张图片。有时候确实是保存成功了&#xff08;通过IO流将图片写入了SDCard&#xff09;&#xff0c;但打开相册却看不到那张图片&#xff0c;需要在文件管理软件上才能找到那张图片&#xf…

图片在手机上怎么修改格式?怎么改变图片格式?

在日常生活和工作中&#xff0c;如果大家需要将手机图片jpg转png&#xff0c;png转jpg等图片格式转换时&#xff0c;都会借用电脑来操作&#xff0c;那我们可以使用手机进行图片格式转换吗&#xff1f;在这里&#xff0c;小编给大家安利一款工具&#xff0c;支持手机图片转换格…

前端浏览器缓存的好处和弊端以及如何处理弊端

浏览器缓存 好处&#xff1a; 减少冗余的数据传输&#xff0c;节省带宽。减轻服务器的请求压力&#xff0c;因为有缓存可以减少向服务器发送请求&#xff0c;资源从缓存中读取&#xff0c;加快客户端的访问速度。因为无需从服务器请求等待响应 缺点&#xff1a; 系统更新时…

通过一个实际例子说明Django中的数据库操作方法ManyToManyField()的用法【数据表“多对多”关系】

当涉及到多对多关系的数据库设计时&#xff0c;Django提供了ManyToManyField()字段&#xff0c;它允许在两个模型之间建立多对多关联。让我们通过一个实际例子来说明其用法。 假设我们正在构建一个简单的博客应用程序&#xff0c;其中有两个模型&#xff1a;Author&#xff08…

人工智能:传统智能手机时代的终结者

文/壹观察 宿艺 2007年iPhone曾经重新定义了智能手机&#xff0c;将诺基亚赶下神坛。十年之后&#xff0c;人工智能&#xff08;AI&#xff09;正在触发手机行业新一轮重大变革。 几乎所有科技巨头都已认识到了这一新的技术革命突破点&#xff0c;如Google、微软、亚马逊、Fa…

千元机难道真的不好吗?那是你没有入手合适的机型,比如说这几款

千元机难道真的不好吗&#xff1f;那是你没有入手合适的机型&#xff0c;比如说这几款 在这个5G时代即将来临&#xff0c;4G网络即将退出的时候&#xff0c;很多人都为了享受5G网络而选择一些千元机当作过渡机型&#xff0c;但是上手后的体验都不怎么满意。 难道千元机真的不…

市面上微型计算机的主频,目前市面上最大屏幕的手机,你知道是哪款吗?

在全面屏泛滥的今天&#xff0c;动辄80%、90%的屏占比让手机拥有了远胜以往的屏幕尺寸&#xff0c;原先4英寸的机身上搭载5英寸甚至6英寸的屏幕让人习以为常&#xff0c;适当的尺寸和舒适的手感已经让人十分满足&#xff0c;那么拥有更大机身和更大屏幕的手机还拥有存在的意义吗…

某嘀APP签名分析

sign解密,为header及data中的key-value拼接,并进行前后和盐值拼接,进行MD5加密; 本章记录定位的算法位置,方便后续观看; demo: # -*- coding: utf-8 -*- # @Author : Codeooo # @Time : 2022-11-23 import hashlib import random

ElementUI组件库安装与基本使用

ElementUI官方网址:Element - 网站快速成型工具 1.安装&#xff1a;在命令行执行 npm install element-ui2.15.3 如图 2.在入口函数引入ElementUI组件库 import ElementUI from element-ui; import element-ui/lib/theme-chalk/index.css; Vue.use(ElementUI); 3.构建vue基…
最新文章