установить обои, используя url android studio (Java) - PullRequest
0 голосов
/ 25 марта 2020

Я много искал, но не мог знать, как это сделать, если у кого-то есть способ сделать это

вот мой код:

public class MainActivity extends AppCompatActivity {

Button btn ;
    String url;  

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
btn=findViewById(R.id.btnsetwallpaper);
btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        //some code here so that I can set the wall paper of the phone using url

    }
});

    }
}

1 Ответ

0 голосов
/ 26 марта 2020

Добавить разрешение в манифесте

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

Реализуйте Picasso, чтобы помочь вам, документы: https://square.github.io/picasso/

Добавьте этот класс AsyncTask в свой MainActivity

public class SetWallpaper extends AsyncTask<String, Void, Bitmap> {

        ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);

        @Override
        protected Bitmap doInBackground(String... params) {
            Bitmap bitmap = null;
            try {
                bitmap = Picasso.get().load(params[0]).get();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return result;
        }

        @Override
        protected void onPostExecute (Bitmap result) {
            super.onPostExecute(result);

            WallpaperManager wallpaperManager = WallpaperManager.getInstance(getBaseContext());
            try {
                wallpaperManager.setBitmap(result);
                progressDialog.dismiss();
                Toast.makeText(getApplicationContext(), "Wallpaper changed", Toast.LENGTH_SHORT).show();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }

        @Override
        protected void onPreExecute () {
            super.onPreExecute();

            progressDialog = new ProgressDialog(MainActivity.this);
            progressDialog.setMessage("Loading image...");
            progressDialog.setCancelable(false);
            progressDialog.show();
        }
    }

Тогда позвоните в свою кнопку

btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                SetWallpaper sw = new SetWallpaper();
                sw.execute(url);
            }
        });

Надеюсь, это поможет вам!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...