网络图片设置为手机背景

给手机上面的图片设置为背景

之前一直想做一个浏览汽车图片的app,并将自己喜欢的汽车图片设置成手机背景,因为一直在工作没有什么时间搞,现在自己写了一个mvp的小项目,虽然跟之前想到做汽车图片浏览app(DanShiApp)不一样,但是也有图片浏览的相关模块,所以就一起实现了设置手机背景的功能,废话多少先上代码


设置手机背景需要添加权限

 <uses-permission android:name="android.permission.SET_WALLPAPER_HINTS"/><uses-permission android:name="android.permission.SET_WALLPAPER"/>
复制代码try {WallpaperManager instance = WallpaperManager.getInstance(WallPicActivity.this);
int desiredMinimumWidth = getWindowManager().getDefaultDisplay().getWidth();
int desiredMinimumHeight = getWindowManager().getDefaultDisplay().getHeight();
instance.suggestDesiredDimensions(desiredMinimumWidth, desiredMinimumHeight);
instance.setBitmap(bitmap);
Toast.makeText(WallPicActivity.this,"壁纸设置成功",Toast.LENGTH_SHORT).show();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}

这里的bitmap 时间网络请求的url 转化成的,可以用下面这个方法

/*** 根据图片的url路径获得Bitmap对象* @param url* @return*/
private Bitmap returnBitmap(String url) {URL fileUrl = null;Bitmap bitmap = null;try {fileUrl = new URL(url);} catch (MalformedURLException e) {e.printStackTrace();}try {HttpURLConnection conn = (HttpURLConnection) fileUrl.openConnection();conn.setDoInput(true);conn.connect();InputStream is = conn.getInputStream();bitmap = BitmapFactory.decodeStream(is);is.close();} catch (IOException e) {e.printStackTrace();}return bitmap;}

不过我用的是picasso 框架转化的

Bitmap bitmap = Picasso.with(context).load(bitmapUrl).get();

可能需要注意的几点,这些方法是要异步操作的,我用的是Rxjava操作的这里也贴上代码

/**
*把图片设置成手机壁纸
*/

    private void makeWallpaper() {Observable.create(new Observable.OnSubscribe() {@Overridepublic void call(Subscriber subscriber) {Bitmap bitmap = null;try {bitmap = Picasso.with(MeiZhiDetailActivity.this).load(bitmapUrl).get();} catch (IOException e) {e.printStackTrace();}subscriber.onNext(bitmap);subscriber.onCompleted();}}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Subscriber() {@Overridepublic void onCompleted() {Toast.makeText(MeiZhiDetailActivity.this, "壁纸设置成功", Toast.LENGTH_SHORT).show();}@Overridepublic void onError(Throwable e) {}@Overridepublic void onNext(Bitmap bitmap) {try {WallpaperManager instance = WallpaperManager.getInstance(MeiZhiDetailActivity.this);int desiredMinimumWidth = getWindowManager().getDefaultDisplay().getWidth();int desiredMinimumHeight = getWindowManager().getDefaultDisplay().getHeight();instance.suggestDesiredDimensions(desiredMinimumWidth, desiredMinimumHeight);instance.setBitmap(bitmap);} catch (IOException e) {e.printStackTrace();}}});}

好了基本的步骤大概就是这些,大家也把喜欢的图片设置成手机壁纸吧!


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部