uniapp/H5plus 获取手机桌面壁纸 (静态壁纸)
|
找半天没找到相关的内容,自己捣鼓出来的,记录一下。(比较可惜的是只能获取静态图片,动态壁纸就不知道了咋弄了)
uniapp的话还可以参考一下如何用NJS获取手机桌面壁纸? - DCloud问答下面DCloud_heavensoft 大佬的一个回答 : “Native.js很多类型没有。用uts可以 https://uniapp.dcloud.net.cn/plugin/uts-plugin.html”
完整的方法:- 1 function getWallpaper () {
- 2 let WallpaperManager = plus.android.importClass("android.app.WallpaperManager"),
- 3 Base64 = plus.android.importClass('android.util.Base64'),
- 4 Bitmap = plus.android.importClass('android.graphics.Bitmap'),
- 5 ByteArrayOutputStream = plus.android.importClass('java.io.ByteArrayOutputStream');
- 6
- 7 let Main = plus.android.runtimeMainActivity();
- 8 let wallpaperManager = WallpaperManager.getInstance(Main);
- 9 let Drawable = wallpaperManager.getDrawable();
- 10
- 11 let bimp = plus.android.invoke(Drawable,"getBitmap");
- 12 let baos = new ByteArrayOutputStream();
- 13
- 14 bimp.compress(Bitmap.CompressFormat.JPEG, 80, baos);
- 15 baos.flush();
- 16 baos.close();
- 17 let bitmapBytes = baos.toByteArray();
- 18 let result = Base64.encodeToString(bitmapBytes, Base64.DEFAULT);
- 19 let src = 'data:image/jpeg;base64,' + result;
- 20 }
复制代码 带注释:- function getWallpaper() {
- // 导入所需的 Android 类
- let WallpaperManager = plus.android.importClass("android.app.WallpaperManager"),
- Base64 = plus.android.importClass('android.util.Base64'),
- Bitmap = plus.android.importClass('android.graphics.Bitmap'),
- ByteArrayOutputStream = plus.android.importClass('java.io.ByteArrayOutputStream');
-
- // 获取当前 Activity
- let Main = plus.android.runtimeMainActivity();
- // 获取壁纸管理器实例
- let wallpaperManager = WallpaperManager.getInstance(Main);
- // 获取当前壁纸的 Drawable
- let Drawable = wallpaperManager.getDrawable();
-
- // 从 Drawable 中获取 Bitmap 对象
- let bimp = plus.android.invoke(Drawable, "getBitmap");
- // 创建一个字节数组输出流
- let baos = new ByteArrayOutputStream();
-
- // 将 Bitmap 压缩为 JPEG 格式,压缩质量为 80%,并写入到字节数组输出流中
- bimp.compress(Bitmap.CompressFormat.JPEG, 80, baos);
- // 刷新输出流
- baos.flush();
- // 关闭输出流
- baos.close();
- // 将输出流中的数据转换为字节数组
- let bitmapBytes = baos.toByteArray();
- // 对字节数组进行 Base64 编码
- let result = Base64.encodeToString(bitmapBytes, Base64.DEFAULT);
- let src = 'data:image/jpeg;base64,' + result;
- }
复制代码
来源:https://www.cnblogs.com/MEEBlogs/p/18012601
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
|
|
|
发表于 2024-2-10 06:03:22
举报
回复
分享
|
|
|
|