我创建了一个墙纸应用,我正在使用Firebase
将图像上传到数据库并显示到RecyclerView
。
我可以看到通过Firebase
在RecyclerView
中上传的图像,也可以将该图像传递给另一个活动。
但是我的问题是,我不能将图像设置为墙纸,设置按钮时图像消失了。
我设置墙纸的代码:
img = (ImageView) findViewById(R.id.images);
Intent intent = getIntent();
String webUrl = intent.getStringExtra("URL");
Picasso.get().load(webUrl).into(img);
fab1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
WallpaperManager wallpaper = WallpaperManager.getInstance(getApplicationContext());
try {
wallpaper.setResource(+ R.drawable.pug); //by using this code i can set a image in directory a wallpaper
//wallpaper.setResource(+ R.id.images); //i tried this one it doesn't work it just crashes the app
}catch (IOException e){
e.printStackTrace();
}
}
});
我要设置的是ImageView
中显示的任何图像
有什么办法
答案 0 :(得分:0)
我假设您已经拥有此权限:
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
我不确定您要实现的目标,但是我假设您希望用户从列表中选择一个图像并将其设置为墙纸。
您只能将Bitmap
或Resource ID
传递给WallpaperManager
。在这种情况下,请先以Bitmap
的形式获取图像,然后将其加载到ImageView
中。
由于您已经在使用毕加索,因此可以执行以下操作:
Picasso.with(this).load(webUrl).centerCrop().into(new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
wallpaper.setBitmap(bitmap);
}
}