Как настроить приложение для обоев с помощью firebase recyclerview? - PullRequest
0 голосов
/ 23 мая 2019

Я создал приложение для обоев, я использую 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 есть ли способ

1 Ответ

0 голосов
/ 23 мая 2019

Я предполагаю, что у вас уже есть разрешение на это:

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

Я не уверен, чего вы пытаетесь достичь, но я предполагаю, что вы хотите, чтобы пользователь выбрал изображение из списка и установил его в качестве обоев. Вы можете передать только Bitmap или Resource ID на WallpaperManager. В этом случае сначала загрузите изображение как Bitmap, а затем загрузите в ImageView.

Поскольку вы уже используете Picasso, вы можете сделать это:

Picasso.with(this).load(webUrl).centerCrop().into(new Target() { 
    @Override 
    public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { 
        wallpaper.setBitmap(bitmap);
    }
}
...