Java 如何在android中通过图像链接以编程方式设置墙纸?

Java 如何在android中通过图像链接以编程方式设置墙纸?,java,android,picasso,android-glide,android-wallpaper,Java,Android,Picasso,Android Glide,Android Wallpaper,我正试图通过图像链接设置为壁纸 我的问题:如何显示对话框“从服务器加载图像”和现在的“设置壁纸”。此弹出窗口出现后,询问用户要将其设置在何处 当前情况:当用户单击“设置壁纸”按钮时。它只显示对话框消息并保持加载。然后用户需要关闭弹出窗口并再次单击。这意味着他们需要点击2次来设置壁纸。我想让它们变得更透明 基本上,我想让我的用户知道哪个进程在安卓系统中运行 下面是代码 progressDialog = ProgressDialog.show(getActivity(),"Please

我正试图通过图像链接设置为壁纸

我的问题:如何显示对话框“从服务器加载图像”和现在的“设置壁纸”。此弹出窗口出现后,询问用户要将其设置在何处

当前情况:当用户单击“设置壁纸”按钮时。它只显示对话框消息并保持加载。然后用户需要关闭弹出窗口并再次单击。这意味着他们需要点击2次来设置壁纸。我想让它们变得更透明

基本上,我想让我的用户知道哪个进程在安卓系统中运行

下面是代码

progressDialog = ProgressDialog.show(getActivity(),"Please wait...","Set as your wallpaper...",false,true);
               

                Picasso.get()
                        .load(setImgLink)
                        .into(new Target() {
                            @Override
                            public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
                                WallpaperManager wallpaperManager = WallpaperManager.getInstance(getActivity());

                                try {
                                    if (bitmap != null) {
                                        wallpaperManager.setBitmap(bitmap);
                                        Snackbar.make(relative_image_slider, "Wallpaper was set", Snackbar.LENGTH_SHORT).show();
                                        progressDialog.dismiss();
                                        ct_popup.setText("Wallpaper was set");
                                        final AlertDialog.Builder builder1 = new AlertDialog.Builder(getActivity());
                                        builder1.setView(subView);
                                        builder1.setPositiveButton("Close", new DialogInterface.OnClickListener() {
                                            @Override
                                            public void onClick(DialogInterface dialog, int which) {
                                                dialog.cancel();
                                                ((ViewGroup)subView.getParent()).removeView(subView);
                                            }
                                        });
                                        builder1.setIcon(R.mipmap.ic_launcher);
                                        builder1.setCancelable(false);
                                        builder1.create();
                                        builder1.show();
                                    }else {
                                        Toast.makeText(getActivity(), "Unable to set your wallpaper !!", Toast.LENGTH_LONG).show();
                                    }


                                } catch (IOException e) {
                                    Toast.makeText(getActivity(), "Something went wrong !!", Toast.LENGTH_LONG).show();
                                    e.printStackTrace();
                                }
                            }

                            @Override
                            public void onBitmapFailed(Exception e, Drawable errorDrawable) {

                            }

                            @Override
                            public void onPrepareLoad(Drawable placeHolderDrawable) {

                            }
                        });

嘿,我有一些搜索,我已经找到了一个解决方案,请遵循


您是否多次初始化progressDialog?如果是,请初始化一次并在需要时编辑使用

ProgressDialog progressDialog = new ProgressDialog(this); // Initialize once
progressDialog.setTitle("Please wait...");// can edit
progressDialog.setMessage("Set as your wallpaper...");// can edit
progressDialog.setCancelable(true);// can edit
progressDialog.setIndeterminate(false);// can edit
progressDialog.show();
progressDialog.dismiss();

谢谢@axar的回答,但答案与我的问题无关。谢谢@ashik,但我的问题是如何使用Glide在android中设置壁纸。现在我用毕加索,它有一些困难,请检查这个,希望它能帮助你。