热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AndroidN默认锁屏壁纸的实现

从AndroidN开始,原生系统增加了锁屏壁纸开关:frameworksbasepackagesSystemUIsrccomandroidsystem

从Android N开始,原生系统增加了锁屏壁纸开关:

frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java

/** If true, the lockscreen will show a distinct wallpaper */private static final boolean ENABLE_LOCKSCREEN_WALLPAPER = true;

要设置出厂默认锁屏壁纸,修改如下代码即可实现:
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenWallpaper.java

public Bitmap getBitmap() {if (mCached) {return mCache;}if (!mWallpaperManager.isWallpaperSupported()) {mCached = true;mCache = null;return null;}LoaderResult result = loadBitmap(mCurrentUserId, mSelectedUser);if (result.success) {mCached = true;mUpdateMonitor.setHasLockscreenWallpaper(result.bitmap != null);mCache = result.bitmap;}//add begin : 第一次开机加载失败,尝试读取系统资源default_lock_wallpaper.jpg,然后写入到锁屏壁纸文件中,并重新loadBitmapif (mCache == null) {try {mWallpaperManager.setStream(mContext.getResources().openRawResource(com.android.internal.R.drawable.default_lock_wallpaper),null,true,WallpaperManager.FLAG_LOCK);result = loadBitmap(mCurrentUserId, mSelectedUser);if (result.success) {mCached = true;mUpdateMonitor.setHasLockscreenWallpaper(result.bitmap != null);mCache = result.bitmap;}} catch (IOException e) {Log.e(TAG, "can not set default lockscreen wallpaper");}}//add endreturn mCache;}

然后放入系统资源图片default_lock_wallpaper即可。


推荐阅读
  • 本文探讨了如何通过Service Locator模式来简化和优化在B/S架构中的服务命名访问,特别是对于需要频繁访问的服务,如JNDI和XMLNS。该模式通过缓存机制减少了重复查找的成本,并提供了对多种服务的统一访问接口。 ... [详细]
  • Web动态服务器Python基本实现
    Web动态服务器Python基本实现 ... [详细]
  • 本文档介绍了如何使用ESP32开发板在STA模式下实现与TCP服务器的通信,包括环境搭建、代码解析及实验步骤。 ... [详细]
  • 本文详细介绍了 `org.apache.tinkerpop.gremlin.structure.VertexProperty` 类中的 `key()` 方法,并提供了多个实际应用的代码示例。通过这些示例,读者可以更好地理解该方法在图数据库操作中的具体用途。 ... [详细]
  • Beetl是一款先进的Java模板引擎,以其丰富的功能、直观的语法、卓越的性能和易于维护的特点著称。它不仅适用于高响应需求的大型网站,也适合功能复杂的CMS管理系统,提供了一种全新的模板开发体验。 ... [详细]
  • 本文介绍了如何通过C#语言调用动态链接库(DLL)中的函数来实现IC卡的基本操作,包括初始化设备、设置密码模式、获取设备状态等,并详细展示了将TextBox中的数据写入IC卡的具体实现方法。 ... [详细]
  • 问题场景用Java进行web开发过程当中,当遇到很多很多个字段的实体时,最苦恼的莫过于编辑字段的查看和修改界面,发现2个页面存在很多重复信息,能不能写一遍?有没有轮子用都不如自己造。解决方式笔者根据自 ... [详细]
  • spring boot使用jetty无法启动 ... [详细]
  • 本文将从基础概念入手,详细探讨SpringMVC框架中DispatcherServlet如何通过HandlerMapping进行请求分发,以及其背后的源码实现细节。 ... [详细]
  • Android与JUnit集成测试实践
    本文探讨了如何在Android项目中集成JUnit进行单元测试,并详细介绍了修改AndroidManifest.xml文件以支持测试的方法。 ... [详细]
  • importjava.io.*;importjava.util.*;publicclass五子棋游戏{staticintm1;staticintn1;staticfinalintS ... [详细]
  • C# 中创建和执行存储过程的方法
    本文详细介绍了如何使用 C# 创建和调用 SQL Server 存储过程,包括连接数据库、定义命令类型、设置参数等步骤。 ... [详细]
  • 如何高效解决Android应用ANR问题?
    本文介绍了ANR(应用程序无响应)的基本概念、常见原因及其解决方案,并提供了实用的工具和技巧帮助开发者快速定位和解决ANR问题,提高应用的用户体验。 ... [详细]
  • 本文探讨了如何高效地计算数组中和为2的幂的偶对数量,提供了从基础到优化的方法。 ... [详细]
  • 本文通过分析一个具体的案例,探讨了64位Linux系统对32位应用程序的兼容性问题。案例涉及OpenVPN客户端在64位系统上的异常行为,通过逐步排查和代码测试,最终定位到了与TUN/TAP设备相关的系统调用兼容性问题。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有