如何使用Firebase Recyclerview设置墙纸应用程序?

时间:2019-05-23 12:32:49

标签: java android firebase android-adapter android-wallpaper

我创建了一个墙纸应用,我正在使用Firebase将图像上传到数据库并显示到RecyclerView

我可以看到通过FirebaseRecyclerView中上传的图像,也可以将该图像传递给另一个活动。

但是我的问题是,我不能将图像设置为墙纸,设置按钮时图像消失了。

我设置墙纸的代码:

 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中显示的任何图像 有什么办法

1 个答案:

答案 0 :(得分:0)

我假设您已经拥有此权限:

 <uses-permission android:name="android.permission.SET_WALLPAPER"/>

我不确定您要实现的目标,但是我假设您希望用户从列表中选择一个图像并将其设置为墙纸。 您只能将BitmapResource 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);
    }
}