翼度科技»论坛 编程开发 JavaScript 查看内容

uniapp/H5plus 获取手机桌面壁纸 (静态壁纸)

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
找半天没找到相关的内容,自己捣鼓出来的,记录一下。(比较可惜的是只能获取静态图片,动态壁纸就不知道了咋弄了)
uniapp的话还可以参考一下如何用NJS获取手机桌面壁纸? - DCloud问答下面DCloud_heavensoft 大佬的一个回答 : “Native.js很多类型没有。用uts可以 https://uniapp.dcloud.net.cn/plugin/uts-plugin.html”  
完整的方法:
  1. 1 function getWallpaper () {
  2. 2    let WallpaperManager = plus.android.importClass("android.app.WallpaperManager"),
  3. 3        Base64 = plus.android.importClass('android.util.Base64'),
  4. 4        Bitmap = plus.android.importClass('android.graphics.Bitmap'),
  5. 5        ByteArrayOutputStream = plus.android.importClass('java.io.ByteArrayOutputStream');
  6. 6           
  7. 7    let Main = plus.android.runtimeMainActivity();
  8. 8    let wallpaperManager = WallpaperManager.getInstance(Main);
  9. 9    let Drawable = wallpaperManager.getDrawable();
  10. 10         
  11. 11    let bimp = plus.android.invoke(Drawable,"getBitmap");
  12. 12    let baos = new ByteArrayOutputStream();
  13. 13         
  14. 14    bimp.compress(Bitmap.CompressFormat.JPEG, 80, baos);
  15. 15    baos.flush();
  16. 16    baos.close();
  17. 17    let bitmapBytes = baos.toByteArray();
  18. 18    let result = Base64.encodeToString(bitmapBytes, Base64.DEFAULT);
  19. 19    let src = 'data:image/jpeg;base64,' + result;
  20. 20 }
复制代码
带注释:
  1. function getWallpaper() {
  2.     // 导入所需的 Android 类
  3.     let WallpaperManager = plus.android.importClass("android.app.WallpaperManager"),
  4.         Base64 = plus.android.importClass('android.util.Base64'),
  5.         Bitmap = plus.android.importClass('android.graphics.Bitmap'),
  6.         ByteArrayOutputStream = plus.android.importClass('java.io.ByteArrayOutputStream');
  7.    
  8.     // 获取当前 Activity
  9.     let Main = plus.android.runtimeMainActivity();
  10.     // 获取壁纸管理器实例
  11.     let wallpaperManager = WallpaperManager.getInstance(Main);
  12.     // 获取当前壁纸的 Drawable
  13.     let Drawable = wallpaperManager.getDrawable();
  14.    
  15.     // 从 Drawable 中获取 Bitmap 对象
  16.     let bimp = plus.android.invoke(Drawable, "getBitmap");
  17.     // 创建一个字节数组输出流
  18.     let baos = new ByteArrayOutputStream();
  19.    
  20.     // 将 Bitmap 压缩为 JPEG 格式,压缩质量为 80%,并写入到字节数组输出流中
  21.     bimp.compress(Bitmap.CompressFormat.JPEG, 80, baos);
  22.     // 刷新输出流
  23.     baos.flush();
  24.     // 关闭输出流
  25.     baos.close();
  26.     // 将输出流中的数据转换为字节数组
  27.     let bitmapBytes = baos.toByteArray();
  28.     // 对字节数组进行 Base64 编码
  29.     let result = Base64.encodeToString(bitmapBytes, Base64.DEFAULT);
  30.     let src = 'data:image/jpeg;base64,' + result;
  31. }
复制代码
 

来源:https://www.cnblogs.com/MEEBlogs/p/18012601
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具