java - 使用 url android studio (Java) 设置壁纸
问题描述
我搜索了很多,但我不知道该怎么做,如果有人有办法做到这一点
这是我的代码:
public class MainActivity extends AppCompatActivity {
Button btn ;
String url;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn=findViewById(R.id.btnsetwallpaper);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//some code here so that I can set the wall paper of the phone using url
}
});
}
}
解决方案
在清单中添加权限
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
实施毕加索来帮助你,文档:https ://square.github.io/picasso/
在您的 MainActivity 中添加此 AsyncTask 类
public class SetWallpaper extends AsyncTask<String, Void, Bitmap> {
ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
@Override
protected Bitmap doInBackground(String... params) {
Bitmap bitmap = null;
try {
bitmap = Picasso.get().load(params[0]).get();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
@Override
protected void onPostExecute (Bitmap result) {
super.onPostExecute(result);
WallpaperManager wallpaperManager = WallpaperManager.getInstance(getBaseContext());
try {
wallpaperManager.setBitmap(result);
progressDialog.dismiss();
Toast.makeText(getApplicationContext(), "Wallpaper changed", Toast.LENGTH_SHORT).show();
} catch (IOException ex) {
ex.printStackTrace();
}
}
@Override
protected void onPreExecute () {
super.onPreExecute();
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setMessage("Loading image...");
progressDialog.setCancelable(false);
progressDialog.show();
}
}
然后在你的按钮中调用它
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SetWallpaper sw = new SetWallpaper();
sw.execute(url);
}
});
希望对你有帮助!
推荐阅读
- ios - 将 String 转换为 double 但值为 nil (调试器另有说明?)
- android - Android Studio 中的 LLDB 到底是什么?
- python - Pandas 数据帧子集的快速平均
- oracle - 使用自定义类型在内存数组中创建 - PLS-00306 参数数量错误
- node.js - pm2 - 如何以编程方式获取/访问进程状态?
- html - Django 中的两个表单 - 如何在所有字段都填满的情况下使表单可提交?
- swift - Swift 中的“var”和“let”有什么区别?
- git - 不提交使用 git-svn 对 svn 所做的所有更改
- postgresql - 我可以使用表的返回类型加上不同表中的一列吗?
- excel - 在标题中查找匹配并偏移到 X 列数