簡體   English   中英

使用 url android studio (Java) 設置壁紙

[英]set wallpaper using url android studio (Java)

我搜索了很多,但我不知道如何做到這一點,如果有人有辦法做到這一點

這是我的代碼:

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

    }
});

    }
}

在清單中添加權限

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

實現畢加索來幫助你,文檔: https : //square.github.io/picasso/

在 MainActivity 中添加此 AsyncTask 類

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);
            }
        });

希望對你有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM