如何从毕加索库加载图像并将其设置为墙纸
How to load image from Picasso library and set it as wallpaper
我从网上收到一张毕加索图书馆的照片。
然后我把它设置在墙纸上。
但是在我的手机上 运行 之后,我接近了原力。
如果您在编码时犯了错误,请帮助我,或者如果有工作建议请提供。
Bitmap result= null;
try {
result = Picasso.with(getApplicationContext())
.load("http://wallpaperswide.com/download/the_amazing_spider_man_2012_film-wallpaper-1600x900.jpg")
.get();
} catch (IOException e) {
e.printStackTrace();
}
WallpaperManager wallpaperManager = WallpaperManager.getInstance(getApplicationContext());
try {
wallpaperManager.setBitmap(result);
} catch (IOException ex) {
ex.printStackTrace();
}
假设您在 MainActivity 中:
package com.example.myapplication;
import android.app.WallpaperManager;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.Toast;
import com.squareup.picasso.Picasso;
import com.squareup.picasso.Target;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Picasso.with(this).load("http://wallpaperswide.com/download/the_amazing_spider_man_2012_film-wallpaper-1600x900.jpg").into(new Target(){
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
WallpaperManager wallpaperManager = WallpaperManager.getInstance(MainActivity.this);
try {
wallpaperManager.setBitmap(bitmap);
} catch (IOException ex) {
ex.printStackTrace();
}
Log.d("TAG", "onBitmapLoaded: ");
Toast.makeText(MainActivity.this, "Wallpaper Changed", Toast.LENGTH_SHORT).show();
}
@Override
public void onBitmapFailed(final Drawable errorDrawable) {
Log.d("TAG", "FAILED");
Toast.makeText(MainActivity.this, "Loading image failed", Toast.LENGTH_SHORT).show();
}
@Override
public void onPrepareLoad(final Drawable placeHolderDrawable) {
Log.d("TAG", "Prepare Load");
Toast.makeText(MainActivity.this, "Downloading image", Toast.LENGTH_SHORT).show();
}
});
}
}
确保:
- 您使用此导入
import com.squareup.picasso.Target;
而不是 import java.lang.annotation.Target;
- 您在 AndroidManifest.xml 中授予 INTERNET 权限和 SET_WALLPAPER 权限。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SET_WALLPAPER" />
最后:
等待图像下载,然后检查您的设备主屏幕,瞧!!!
我从网上收到一张毕加索图书馆的照片。 然后我把它设置在墙纸上。 但是在我的手机上 运行 之后,我接近了原力。 如果您在编码时犯了错误,请帮助我,或者如果有工作建议请提供。
Bitmap result= null;
try {
result = Picasso.with(getApplicationContext())
.load("http://wallpaperswide.com/download/the_amazing_spider_man_2012_film-wallpaper-1600x900.jpg")
.get();
} catch (IOException e) {
e.printStackTrace();
}
WallpaperManager wallpaperManager = WallpaperManager.getInstance(getApplicationContext());
try {
wallpaperManager.setBitmap(result);
} catch (IOException ex) {
ex.printStackTrace();
}
假设您在 MainActivity 中:
package com.example.myapplication;
import android.app.WallpaperManager;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.Toast;
import com.squareup.picasso.Picasso;
import com.squareup.picasso.Target;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Picasso.with(this).load("http://wallpaperswide.com/download/the_amazing_spider_man_2012_film-wallpaper-1600x900.jpg").into(new Target(){
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
WallpaperManager wallpaperManager = WallpaperManager.getInstance(MainActivity.this);
try {
wallpaperManager.setBitmap(bitmap);
} catch (IOException ex) {
ex.printStackTrace();
}
Log.d("TAG", "onBitmapLoaded: ");
Toast.makeText(MainActivity.this, "Wallpaper Changed", Toast.LENGTH_SHORT).show();
}
@Override
public void onBitmapFailed(final Drawable errorDrawable) {
Log.d("TAG", "FAILED");
Toast.makeText(MainActivity.this, "Loading image failed", Toast.LENGTH_SHORT).show();
}
@Override
public void onPrepareLoad(final Drawable placeHolderDrawable) {
Log.d("TAG", "Prepare Load");
Toast.makeText(MainActivity.this, "Downloading image", Toast.LENGTH_SHORT).show();
}
});
}
}
确保:
- 您使用此导入
import com.squareup.picasso.Target;
而不是import java.lang.annotation.Target;
- 您在 AndroidManifest.xml 中授予 INTERNET 权限和 SET_WALLPAPER 权限。
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.SET_WALLPAPER" />
最后: 等待图像下载,然后检查您的设备主屏幕,瞧!!!