如何以编程方式通过android中的图像链接设置壁纸?

问题描述

我正在尝试通过图片链接设置为墙纸。

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

enter image description here

现状:当用户点击“设置壁纸”按钮时。它只显示对话框消息并继续加载。然后用户需要关闭弹出窗口并再次单击。这意味着他们需要单击 2 次才能设置墙纸。我想让它们更容易变得更透明。

基本上我想让我的用户知道哪个进程在 android 中运行

代码如下

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) {

                            }
                        });

解决方法

嘿,我有一些搜索,我找到了解决方案,请关注

https://www.geeksforgeeks.org/how-to-set-an-image-as-wallpaper-programmatically-in-android/

Programmatically set android phone's background

,

您是否以某种方式多次初始化 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();

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...