首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只设置Android HomeScreen壁纸

只设置Android HomeScreen壁纸
EN

Stack Overflow用户
提问于 2020-12-04 00:10:35
回答 1查看 166关注 0票数 3

如何以编程方式为下面的选项设置android的壁纸:

  • Set为HomeScreen,
  • 设置为锁定屏幕,
  • 设置为主屏幕,锁定屏幕为

下面是我到目前为止所拥有的,但我不知道如何才能将它设置为主屏幕。

代码语言:javascript
复制
private void setWallpaper(final int flagSystem) {

    Glide.with(this)
            .asBitmap()
            .load(wallPaper)
            .into(new SimpleTarget<Bitmap>() {
                @Override
                public void onResourceReady(@NonNull Bitmap bitmap, @Nullable Transition<? super Bitmap> transition) {
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                        try {
                            WallpaperManager wallpaperManager = WallpaperManager.getInstance(getContext());

                            int wallpaperHeight = Resources.getSystem().getDisplayMetrics().heightPixels;
                            int wallpaperWidth = Resources.getSystem().getDisplayMetrics().widthPixels;

                            Point start = new Point(0, 0);
                            Point end = new Point(bitmap.getWidth(), bitmap.getHeight());

                            if (bitmap.getWidth() > wallpaperWidth) {
                                start.x = (bitmap.getWidth() - wallpaperWidth) / 2;
                                end.x = start.x + wallpaperWidth;
                            }

                            if (bitmap.getHeight() > wallpaperHeight) {
                                start.y = (bitmap.getHeight() - wallpaperHeight) / 2;
                                end.y = start.y + wallpaperHeight;
                            }

                            if (flagSystem == 0) {
                                wallpaperManager.setBitmap(bitmap, null, true);
                              

                            } else if (flagSystem == 1) {
                                wallpaperManager.setBitmap(bitmap, null, true, WallpaperManager.FLAG_LOCK);
                            } else {
                                wallpaperManager.setBitmap(bitmap, new Rect(start.x, start.y, end.x, end.y), false);

                            }

                            Toast.makeText(getContext(), "Wallpaper set successfully", Toast.LENGTH_SHORT).show();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }
            });

}
EN

回答 1

Stack Overflow用户

发布于 2020-12-04 07:40:43

使用WallpaperManager.FLAG_SYSTEM标志

代码语言:javascript
复制
manager.setBitmap(bitmap, null, true, WallpaperManager.FLAG_SYSTEM);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65136098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档