android 锁屏壁纸和桌面壁纸的设置实现

news/2024/11/3 3:40:21/

在flyme系统下面,有个类是可以用来设置桌面壁纸的,叫做WallpaperManager,调用该类的setBitmap(),即可。但是锁屏壁纸的设置却无法直接调用这个类的某些方法。

需要用到反射调用。反射调用可以参考以下两篇文章:

1.通过java反射调用方法 ,这个比较简单的说明了反射调用的方法。

2.安卓反射机制的实现与原理 ,这一篇说了原理,比较深入,但有说得点儿多了。

 

接下来直接上代码了:

设置桌面壁纸:

	public void SetWallPaper() {WallpaperManager mWallManager = WallpaperManager.getInstance(this);try {Bitmap bitmap = BitmapFactory.decodeFile(imageFilesPath);mWallManager.setBitmap(bitmap);Toast.makeText(ImageViewActivity.this, "壁纸设置成功", Toast.LENGTH_SHORT).show();} catch (IOException e) {e.printStackTrace();}}


设置锁屏壁纸:

	private void SetLockWallPaper() {// TODO Auto-generated method stubtry {WallpaperManager mWallManager = WallpaperManager.getInstance(this);Class class1 = mWallManager.getClass();//获取类名Method setWallPaperMethod = class1.getMethod("setBitmapToLockWallpaper",Bitmap.class);//获取设置锁屏壁纸的函数setWallPaperMethod.invoke(mWallManager, BitmapFactory.decodeFile(imageFilesPath);//调用锁屏壁纸的函数,并指定壁纸的路径imageFilesPathToast.makeText(ImageViewActivity.this, "锁屏壁纸设置成功", Toast.LENGTH_SHORT).show();} catch (Throwable e) {// TODO Auto-generated catch blocke.printStackTrace();}}


完成。


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

相关文章

Win10锁屏壁纸位置在哪?默认锁屏壁纸怎么提取

http://jingyan.baidu.com/article/fedf07375ea25135ad897761.html C:\Users\MIS\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets 备注一下: MIS:是你要的用户名文件夹 Microsoft.Windows.ContentD…

Android 壁纸、锁屏

1、获取桌面壁纸: 调用:layout.setBackground(getWallpaperDrawable()); private Drawable getWallpaperDrawable() {Drawable wallpaperDrawable;PackageManager pm getApplicationContext().getPackageManager();WallpaperManager wallpaperManager …

最近最火的手机锁屏软件

最近在人人上看到一个非常火的锁屏软件,在回答问题正确后才能解锁,而问题是一道复杂的高等数学题,哈哈,让你玩手机,期末复习必备啊! 一时兴起,自己就写了一个类似的Android手机锁屏软件&#x…

如何获取win10锁屏界面的壁纸

Win10聚焦的锁屏壁纸其实都是全部下载到本地的,其路径是: C:\Users\[用户名]\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets 第一步 双击“此电脑”打开文件资源管理器,在搜索框内粘贴…

Win系统 - 喜欢的WIN10锁屏壁纸,怎么下载?

Win10的锁屏界面有时候挺好看的,要是能拿来当壁纸就好了........ 锁屏壁纸?拿来当桌面?放着我来!! 先看一下Windows锁屏壁纸应该在哪里设置: 桌面空白处右击,选择个性化,在锁屏界面…

Record 模式提升了 Java,能实现更具表现力的编码

摘要: 由于在 JEP 432 和 JEP 405 中进行了反馈驱动的增强,JEP 440,最终确定的记录模式(Record Patterns)已从 JDK 21 从 Proposed to Target 状态提升为 Target 状态。在与类型模式一起使用时,记录模式现…

VUE 实现全屏指令方法

公司项目实现全屏功能,用到的地方很多,想到用vue指令实现 main.js import popupManager from element-ui/lib/lib/utils/popup/popup-manager Vue.prototype.gcommonPopupManager popupManager screenFull.js import Vue from vue const executor …

Centos7更换OpenSSL版本

OpenSSL 1.1.0 用户应升级至 1.1.0aOpenSSL 1.0.2 用户应升级至 1.0.2iOpenSSL 1.0.1 用户应升级至 1.0.1u 查看openssl版本 openssl version -v选择升级版本 我的版本是OpenSSL 1.0.2系列,所以要升级1.0.2i https://www.openssl.org/source/old/1.0.2/openssl-…