Java 安卓设置壁纸(打开询问对话框)
我想在我的android应用程序中将图像设置为壁纸,下面是我的代码:Java 安卓设置壁纸(打开询问对话框),java,android,wallpaper,android-external-storage,android-wallpaper,Java,Android,Wallpaper,Android External Storage,Android Wallpaper,我想在我的android应用程序中将图像设置为壁纸,下面是我的代码: private class SetAsBackground implements View.OnClickListener { @Override public void onClick(View v) { new AsyncTask<Void, Void, Void>() { @Override protected Void doIn
private class SetAsBackground implements View.OnClickListener {
@Override
public void onClick(View v) {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
Looper.prepare();
try {
mShareBitmap = Glide.with(WallPaperDetails.this).load(mImageURL).asBitmap()
.into(-1, -1).get();
} catch (final ExecutionException | InterruptedException e) {
Log.e("loading_fail", e.getMessage());
}
return null;
}
@Override
protected void onPostExecute(Void dummy) {
if (null != mShareBitmap) {
new ImageSaver(WallPaperDetails.this)
.setFileName("wallpaper.png")
.setDirectoryName("fine")
.save(mShareBitmap);
WallpaperManager myWallpaperManager = WallpaperManager
.getInstance(WallPaperDetails.this);
try {
Bitmap bitmap = new ImageSaver(WallPaperDetails.this)
.setFileName("wallpaper.png")
.setDirectoryName("fine").load();
myWallpaperManager.setBitmap(bitmap);
Toast.makeText(WallPaperDetails.this,
"Wallpaper successfully changed", Toast.LENGTH_SHORT)
.show();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}.execute();
}
}
私有类SetAsBackground实现View.OnClickListener{
@凌驾
公共void onClick(视图v){
新建异步任务(){
@凌驾
受保护的Void doInBackground(Void…参数){
Looper.prepare();
试一试{
mShareBitmap=Glide.with(wallperDetails.this).load(mImageURL.asBitmap())
.into(-1,-1).get();
}捕获(最终执行异常|中断异常e){
Log.e(“加载失败”,e.getMessage());
}
返回null;
}
@凌驾
受保护的void onPostExecute(void dummy){
if(null!=mShareBitmap){
新的ImageSaver(壁纸详细信息。此)
.setFileName(“wallpar.png”)
.setDirectoryName(“罚款”)
.save(mShareBitmap);
壁纸管理器MyWallpareManager=壁纸管理器
.getInstance(wallperDetails.this);
试一试{
位图位图=新的图像保护程序(壁纸详细信息。此)
.setFileName(“wallpar.png”)
.setDirectoryName(“精细”).load();
mywallparkmanager.setBitmap(位图);
Toast.makeText(wallperDetails.this,
“墙纸已成功更改”,Toast.LENGTH\u SHORT)
.show();
}捕获(IOE异常){
e、 printStackTrace();
}
}
}
}.execute();
}
}
但我想这样做:
我该怎么做?现在我正在使用带有图像保护程序类的墙纸管理器(我可以共享图像保护程序类的代码)。在谷歌搜索时,我没有找到任何其他答案。如果您可以解释该应用程序是如何做到这一点的,或者共享一些代码…方法中的View v是什么?
Public void xyz(View v) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), 0);
}