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